OVH Cloud OVH Cloud

SDK LDAP

10 réponses
Avatar
Arno
Bonjour,

J'ai besoin de développer un module en C qui doit faire des requêtes sur un
annuaire LDAP. Je me demandais si il existait un SDK en C pour réaliser
cella. J'ai vu quand installant OpenLDAP, une API était fournit. Je ne
souhaite installé que l'API. Est ce possible ? J'ai également vu que l'on
pouvait récupérer le SDK de mozilla mais je j'aimerais obtenir une API
simple a installer (ie juste des sources à compiler si possible).

Par avance, merci.

--
Arno - Pour le mail : http://cerbermail.com/?P5oJnDlxNt

10 réponses

Avatar
VANHULLEBUS Yvan
"Arno" writes:

Bonjour,

J'ai besoin de développer un module en C qui doit faire des requêtes sur un
annuaire LDAP. Je me demandais si il existait un SDK en C pour réaliser
cella. J'ai vu quand installant OpenLDAP, une API était fournit. Je ne
souhaite installé que l'API. Est ce possible ? J'ai également vu que l'on
pouvait récupérer le SDK de mozilla mais je j'aimerais obtenir une API
simple a installer (ie juste des sources à compiler si possible).


OpenLDAP fournit bien (entre autres) une librairie cliente avec une
API en C (en fait, l'API LDAP est "presque" standard).

Certaines distribs Linux et le systeme de ports FreeBSD permettent
d'installer separement la partie cliente et/ou la partie serveur, et
ca doit aussi etre faisable a la main a partir des sources...


A +

VANHU.

Avatar
Arno
Un beau jour, VANHULLEBUS Yvan a écrit:

"Arno" writes:

Bonjour,

J'ai besoin de développer un module en C qui doit faire des requêtes
sur un annuaire LDAP. Je me demandais si il existait un SDK en C
pour réaliser cella. J'ai vu quand installant OpenLDAP, une API
était fournit. Je ne souhaite installé que l'API. Est ce possible ?
J'ai également vu que l'on pouvait récupérer le SDK de mozilla mais
je j'aimerais obtenir une API simple a installer (ie juste des
sources à compiler si possible).


OpenLDAP fournit bien (entre autres) une librairie cliente avec une
API en C (en fait, l'API LDAP est "presque" standard).

Certaines distribs Linux et le systeme de ports FreeBSD permettent
d'installer separement la partie cliente et/ou la partie serveur, et
ca doit aussi etre faisable a la main a partir des sources...



J'ai compiler OpenLDAP et j'ai fait un make install dans les répertoire
include et librairies. A première vue tout est bien installé. J'ai compiler
un petit bou de code avec la ligne de commande : gcc ldap.c -lldap -o ldpa
Et lorsque je lance l'executable j'obtiens le message d'erreur suivant :
./ldpa: error while loading shared libraries: libldap.so.2: cannot open
shared object file: No such file or directory

Pourtant un locate sur libldap me donne :
/usr/local/lib/libldap.so.2.0.124
/usr/local/lib/libldap.so.2
/usr/local/lib/libldap.so
/usr/local/lib/libldap.la
/usr/local/lib/libldap.a
/usr/local/lib/libldap_r.so.2.0.124
/usr/local/lib/libldap_r.so.2
/usr/local/lib/libldap_r.so
/usr/local/lib/libldap_r.la
/usr/local/lib/libldap_r.a

Et un ldd sur /usr/local/lib/libldap.so.2 me donne :
ldd: warning: you do not have execution permission for
`/usr/local/lib/libldap.so.2'
liblber.so.2 => /usr/local/lib/liblber.so.2 (0x4002c000)
libresolv.so.2 => /lib/libresolv.so.2 (0x4003f000)
libdl.so.2 => /lib/libdl.so.2 (0x40050000)
libsasl.so.7 => /usr/local/lib/libsasl.so.7 (0x40053000)
libssl.so.0 => /usr/lib/libssl.so.0 (0x4005d000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4008e000)
libc.so.6 => /lib/libc.so.6 (0x4018b000)
libdb-3.1.so => /lib/libdb-3.1.so (0x402bf000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40333000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)


Je ne comprend pas pourquoi j'ai ce message d'erreur quelqu'un a t'il une
idée ?

Merci

--
Arno - Pour le mail : http://cerbermail.com/?P5oJnDlxNt


Avatar
Nicolas.MICHEL
Arno wrote:

Et un ldd sur /usr/local/lib/libldap.so.2 me donne :
ldd: warning: you do not have execution permission for
`/usr/local/lib/libldap.so.2'



question de newbie :
pourquoi tu ne regardes pas si tu as les droits d'exécution sur ce
fichier ?

sinon, j'avais eu un problème similaire, résolu avec un
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
m'enfin...
--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

Avatar
Erwan David
(Nicolas MICHEL) écrivait :

Arno wrote:

Et un ldd sur /usr/local/lib/libldap.so.2 me donne :
ldd: warning: you do not have execution permission for
`/usr/local/lib/libldap.so.2'


question de newbie :
pourquoi tu ne regardes pas si tu as les droits d'exécution sur ce
fichier ?


Euh depuis quand faut-il un droit d'exécution sur une lib ?

--
Real programs don't eat cache


Avatar
Arno
Un beau jour, Nicolas MICHEL a écrit:

Arno wrote:

Et un ldd sur /usr/local/lib/libldap.so.2 me donne :
ldd: warning: you do not have execution permission for
`/usr/local/lib/libldap.so.2'



question de newbie :
pourquoi tu ne regardes pas si tu as les droits d'exécution sur ce
fichier ?

sinon, j'avais eu un problème similaire, résolu avec un
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
m'enfin...


En fait j'ai eu beau faire des ldconfig pour réactualiser le cache rien à
faire. En redemarrant la machine, cella fonctionne. Je ne peut pas dire
pourquoi par contre.

--
Arno - Pour le mail : http://cerbermail.com/?P5oJnDlxNt


Avatar
Nicolas.MICHEL
Erwan David wrote:

(Nicolas MICHEL) écrivait :

question de newbie :
pourquoi tu ne regardes pas si tu as les droits d'exécution sur ce
fichier ?


Euh depuis quand faut-il un droit d'exécution sur une lib ?


J'avais précisé "question de newbie"
C'est clair que "lecture seule" me parait suffisant, à priori.
Mais alors pourquoi dire
"you do not have execution permission for"
si ce n'est pas nécessaire d'avoir les droits d'exécution ?

Bon, d'accord, je dis plus rien.
--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas


Avatar
Erwan David
(Nicolas MICHEL) écrivait :

Erwan David wrote:

(Nicolas MICHEL) écrivait :

question de newbie :
pourquoi tu ne regardes pas si tu as les droits d'exécution sur ce
fichier ?


Euh depuis quand faut-il un droit d'exécution sur une lib ?


J'avais précisé "question de newbie"
C'est clair que "lecture seule" me parait suffisant, à priori.
Mais alors pourquoi dire
"you do not have execution permission for"
si ce n'est pas nécessaire d'avoir les droits d'exécution ?

Bon, d'accord, je dis plus rien.


Là je pense qu'il faudrait avoir la version exacte de l'Unix utilisé,
parceque ça semble étrange (ainsi que les doits sur /usr/local/lib et
la lib elle même)

--
Real programs don't eat cache



Avatar
Jean-Marc Bourguet
Erwan David writes:

[ldd avertit qu'une lib dynamique n'est pas executable]

Là je pense qu'il faudrait avoir la version exacte de l'Unix
utilisé, parceque ça semble étrange (ainsi que les doits sur
/usr/local/lib et la lib elle même)


Extrait du man ldd de sun (uname -sr = SunOS 5.8)

If filename is a shared object, ldd lists the path names of
all shared objects that would be loaded when filename is
loaded. ldd expects shared objects to have execute permis-
sion. If this is not the case, ldd will issue a warning
before attempting to process the file.

A+

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
Moi
Dans l'article <c1cpg5$i66$
écrivait :

J'ai compiler OpenLDAP et j'ai fait un make install dans les répertoire
include et librairies. A première vue tout est bien installé. J'ai compiler
un petit bou de code avec la ligne de commande : gcc ldap.c -lldap -o ldpa
Et lorsque je lance l'executable j'obtiens le message d'erreur suivant :
./ldpa: error while loading shared libraries: libldap.so.2: cannot open
shared object file: No such file or directory


ldconfig ?

Avatar
Moi
Dans l'article
écrivait :

pourquoi tu ne regardes pas si tu as les droits d'exécution sur ce
fichier ?
Euh depuis quand faut-il un droit d'exécution sur une lib ?



Et pourquoi sont elles en mode "755" ???