🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #24

Re: Problemas con libldap

#24
From: Trauma
Date: Sun, 16 Oct 2005 09:39
91 lines
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-mail
References: <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)