Article View: es.comp.os.linux.programacion
Article #24Re: Problemas con libldap
From: Trauma
Date: Sun, 16 Oct 2005 09:39
Date: Sun, 16 Oct 2005 09:39
91 lines
3924 bytes
3924 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
El Sat, 15 Oct 2005 23:53:03 +0000 (UTC), Claudio <claudio@example.org>
dijo:
> On 2005-10-15, Trauma <trauma@calambre.homeip.net> wrote:
> >
> > Holas
> >
> > Estoy tonteando con libldap, y estoy atascado en la funci�n ldap_bind_s
> >
> > � Alguna idea sobre donde estoy metiendo la pata ?
> Pues sin c�digo es dificil. Muy dificil. No solo hay que saber C, hay
> que saber ldap y ser adivino. Te cuento, a mi me funciona esto:
Tienes raz�n. Sin el c�digo es dificil, pero es que es para gestionar
autorizaciones de un programa externo, y hay que seguir sus
convenciones para el paso de argumentos a trav�s de la entrada
estandar, por lo que est� lleno de operaciones con cadenas, y la
llamada a ldap_bind no es tan directa. No obstante, ha sido comprobado
justo hasta la llamada, que se realizaba con los argumentos correctos.
>
> $ cat ml.c
> #include <stdio.h>
> #include <stdlib.h>
> #include <ldap.h>
>
> main()
> {
> LDAP *p;
> int i;
> p = ldap_init("localhost",389);
> if (p== NULL) { exit((int)3);};
> i = ldap_bind_s(p,"cn=micommonname,dc=midominio,dc=tld","lapassquemeinvente",LDAP_AUTH_SIMPLE);
> if (i!=LDAP_SUCCESS) ldap_perror(p,"ldap");
> else puts("lo hice, lo hice!\n");
> }
No va. Me dice que estoy usando la versi�n 2 del protocolo, y me pide
la 3.
Mirando en el c�digo fuente de libldap, he encontrado la forma, aunque
aparentemente no est� documentada ( al menos en Debian Sarge ). Hay que
forzar la versi�n 3 del protocolo despu�s de la llamada a ldap_init, y
antes de realizar el bind.
El c�digo quedar�a as�:
#include <stdio.h>
#include <stdlib.h>
#include <ldap.h>
main( ) {
LDAP *p;
int i;
int v = LDAP_VERSION_MAX;
if( ( p = ldap_init( "localhost", 389 ) ) == NULL ) exit( 3 );
if( ldap_set_option( p, LDAP_OPT_PROTOCOL_VERSION, &version ) !=
LDAP_OPT_SUCCESS )
exit( 3 );
i = ldap_bind_s( p,
"cn=micommonname,dc=midominio,dc=tld",
"lapassquemeinvente",
LDAP_AUTH_SIMPLE );
if( i != LDAP_SUCCESS )
ldap_perror( p, "ldap" );
else
puts( "lo hice, lo hice! \n" );
}
Esto no realiza ninguna comprobaci�n de las versiones soportadas por el
servidor. Tan solo utiliza la m�xima con soporte en libldap. De
momento, y para lo que yo lo utilizar�, servir�.
Bueno, muchas gracias. Ya volver� si me surge algo m�s.
Enga, nos leemos.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFDUh/E6WA6q7P0aeoRAlPQAJ9aaHYfpfb+jSQ9b8g17WZ4W5LqeQCeJ8Lk
ZzklT5tc0lAbcIv6WcNZIbA=
=u+QJ
-----END PGP SIGNATURE-----
Technical Details
Message-ID:
<20051016113916.070a6bd8.trauma@calambre.homeip.net>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!news.antakira.com!guada07.guadawireless.net!neozero.escomposlinux.org!escomposlinux.org!calambre.escomposlinux.org!not-for-mailReferences:
<20051016003601.46f9726b.trauma@calambre.homeip.net> <slrndl35iv.5ml.claudio@example.org>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,98eb576eea54a68d X-Google-Thread: 10f58f,98eb576eea54a68d X-Google-Attributes: gidf86c8,gid10f58f,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!news.antakira.com!guada07.guadawireless.net!neozero.escomposlinux.org!escomposlinux.org!calambre.escomposlinux.org!not-for-mail From: Trauma <trauma@calambre.homeip.net> Newsgroups: es.comp.os.linux.programacion,es.comp.lenguajes.c Subject: Re: Problemas con libldap Date: Sun, 16 Oct 2005 11:39:16 +0200 Organization: escomposlinux.org Lines: 91 Message-ID: <20051016113916.070a6bd8.trauma@calambre.homeip.net> References: <20051016003601.46f9726b.trauma@calambre.homeip.net> <slrndl35iv.5ml.claudio@example.org> NNTP-Posting-Host: lilu.localdomain Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: calambre.localdomain 1129455276 6368 192.168.1.2 (16 Oct 2005 09:34:36 GMT) X-Complaints-To: newsmaster@calambre.homeip.net NNTP-Posting-Date: Sun, 16 Oct 2005 09:34:36 +0000 (UTC) X-Newsreader: Sylpheed version 2.0.0 (GTK+ 2.6.10; i486-pc-linux-gnu)