On Tue, Jun 29, 2010 at 02:55:16PM +0900, Christian Balzer wrote:
Hello simon,
sorry for not stumbling over this earlier but my test setup has just
one server configured and I just ran into this trying a run on a
(thankfully) standby machine in the production environment.
Perdition is 1.18-2 (Debian Sid/Lenny backports).
If the LDAP URL has more than one LDAP server in it, queries fail with
this:
---
dbserver_get2: ldap_initialize: Bad parameter to an ldap routine
---
Which had me rather stumped for a while until in one iteration I reduced
things to one server. And no, version 2 or 3 make no difference. ^^
Working config line:
---
m 3:ldap://localhost/ou=mail,dc=gol,dc=com?mailLocaladdress,mailServer?one?(uid=%s)
---
Not working:
---
m 3:ldap://localhost
ldap.dentaku.gol.com/ou=mail,dc=gol,dc=com?mailLocaladdress,mailServer?one?…
---
I believe that in order to be able to specify more than one host
you need the following change, which was added after 1.18 was released:
"LDAP: Allow multiple space-delimited hosts in URI"
http://hg.vergenet.net/perdition/perdition/rev/89de734f919c
And while I know you are not really involved with the
LDAP bits, do you
(or anybody else here) know how a hostname resolving to multiple IPs is
treated? I.e, pick the first IP the resolver returns and if that is dead,
this "host" is dead. Or try all IPs returned until one succeeds and if
not, next server (if configured).
That logic should be in libopenldap somewhere.
Off hand I'm not sure what the logic is.