From: Roland S. <rol...@ep...> - 2001-04-19 15:52:33
|
Hi all, I've got a problem understanding the information posted earlier on this mailing list: ----- begin FROM: Graham Barr DATE: 10/17/2000 22:20:47 SUBJECT: RE: chasing referrals On Tue, Oct 17, 2000 at 05:27:49PM -0700, Robbie Allen wrote: > Can Net::LDAP automatically chase referrals? Sample code? Not yet. Currently you have to follow them yourself. You can get them with $mesg = $ldap->search( ... ); @referrals = $mesg->referrals; Graham. ----- end (We are using Net::LDAP 0.22 and OpenLDAP 1.2.11) It seems that my configuration doesn't return any referrals. I have configured two servers, one holding o=epigenomics, the other on c=us,o=epigenomics. Via PHP and ldapsearch tools, the inserted referrals even seem to transparently redirect the client to the second server when accessing/searching the c=us,epigenomics substructure. But with my Net::LDAP code: --- begin $ldap = Net::LDAP->new("wilson"); # connect to root server $ldap->bind; $mesg = $ldap->search( base => "o=epigenomics", filter => '(&(cn=*)(objectclass=*))', deref => 3, ); @referrals = $mesg->referrals; foreach $ref (@referrals) { print "Referral: ",$ref,"\n"; } print "Return code: ",$mesg->code,"\n"; print "Error message: \"",$mesg->error,"\"\n"; $n = $mesg->all_entries; print "Number of Entries: ".$n."\n"; foreach $entry ($mesg->entries) { print "dn: ",$entry->dn,"\n"; } --- end I don't get any referrals (the response is:) --- begin Return code: 9 Error message: "Referral: ldap://deledda/c=us,o=epigenomics" Number of Entries: 2 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics --- end (There should be more users. ldapsearch and PHP functions are able to provide them.) Thanks for your ideas! bye, Roland -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Chris R. <chr...@me...> - 2001-04-19 16:37:33
|
Roland Stigge <rol...@ep...> wrote: > Hi all, > > I've got a problem understanding the information posted earlier on this > mailing list: > > ----- begin > FROM: Graham Barr > DATE: 10/17/2000 22:20:47 > SUBJECT: RE: chasing referrals > > On Tue, Oct 17, 2000 at 05:27:49PM -0700, Robbie Allen wrote: > > Can Net::LDAP automatically chase referrals? Sample code? > > Not yet. Currently you have to follow them yourself. You can > get them with > > $mesg = $ldap->search( ... ); > @referrals = $mesg->referrals; > > Graham. > ----- end > > (We are using Net::LDAP 0.22 and OpenLDAP 1.2.11) > > It seems that my configuration doesn't return any referrals. I have > configured two servers, one holding o=epigenomics, the other on > c=us,o=epigenomics. Via PHP and ldapsearch tools, the inserted referrals > even seem to transparently redirect the client to the second server when > accessing/searching the c=us,epigenomics substructure. But with my > Net::LDAP code: > > --- begin > $ldap = Net::LDAP->new("wilson"); # connect to root server > $ldap->bind; > $mesg = $ldap->search( base => "o=epigenomics", > filter => '(&(cn=*)(objectclass=*))', > deref => 3, > ); > @referrals = $mesg->referrals; > foreach $ref (@referrals) { > print "Referral: ",$ref,"\n"; > } > > print "Return code: ",$mesg->code,"\n"; > print "Error message: \"",$mesg->error,"\"\n"; > $n = $mesg->all_entries; > print "Number of Entries: ".$n."\n"; > > foreach $entry ($mesg->entries) { > print "dn: ",$entry->dn,"\n"; > } > --- end > > I don't get any referrals (the response is:) > > --- begin > Return code: 9 > Error message: "Referral: > ldap://deledda/c=us,o=epigenomics" > Number of Entries: 2 > dn: cn=admin,o=epigenomics > dn: cn=updated,o=epigenomics > --- end > > (There should be more users. ldapsearch and PHP functions are able to > provide them.) > > Thanks for your ideas! > > bye, > Roland > -- > Roland Stigge > > Epigenomics AG Kastanienallee 24 > www.epigenomics.com 10435 Berlin > > You are binding using LDAPv2. LDAPv2 did not have referrals. Some vendors have 'patched in' some support for referrals in LDAPv2, but this is completely non-standard and not supported by Net::LDAP. Try binding with LDAPv3 instead and see what you get. Hint: pass version => 3 in the bind call. Cheers, Chris |
From: Roland S. <rol...@ep...> - 2001-04-20 11:23:53
|
Hi, Chris Ridd wrote: > > (We are using Net::LDAP 0.22 and OpenLDAP 1.2.11) > > It seems that my configuration doesn't return any referrals. I have > > configured two servers, one holding o=epigenomics, the other on > > c=us,o=epigenomics. Via PHP and ldapsearch tools, the inserted referrals > > even seem to transparently redirect the client to the second server when > > accessing/searching the c=us,epigenomics substructure. But with my > > Net::LDAP code: > You are binding using LDAPv2. LDAPv2 did not have referrals. > > Some vendors have 'patched in' some support for referrals in LDAPv2, but > this is completely non-standard and not supported by Net::LDAP. > > Try binding with LDAPv3 instead and see what you get. Hint: pass version => > 3 in the bind call. I already tried that: ----- $ldap = Net::LDAP->new("wilson"); $ldap->bind(version => 3); print "LDAP Version: ",$ldap->version,"\n"; $mesg = $ldap->search( base => "o=epigenomics", filter => '(cn=*)', deref => 3, ); @referrals = $mesg->referrals; foreach $ref (@referrals) { print "Referral: ",$ref,"\n"; } print "Return code: ",$mesg->code,"\n"; print "Error message: \"",$mesg->error,"\"\n"; $n = $mesg->all_entries; print "Number of Entries: ".$n."\n"; foreach $entry ($mesg->entries) { print "dn: ",$entry->dn,"\n"; } ----- but got the same result: ----- LDAP Version: 3 Return code: 9 Error message: "Referral: ldap://deledda/c=gdr,o=epigenomics ldap://deledda/c=us,o=epigenomics" Number of Entries: 2 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics ----- Even with LDAPv3, I get the same result. "Real" referrals seem to be suppressed (in the array). Instead, the error message (!) contains the referral. As you see, I added a referral. So even multiple referrals are displayed in the error message. Is this the desired behavior of Net::LDAP? I don't like the idea to parse error strings instead of being able to use the native referrals in $mesg->referrals. Thanks in advance. bye, -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Graham B. <gb...@po...> - 2001-04-20 12:09:53
|
It would seem the server thinks you are a version 2 client. Error code 9 is LDAP_PARTIAL_RESULTS Returned to version 2 clients when a referral is returned. The response will contain a list of URL's for other servers. It is then returning the referrals in the error message. Can you turn on debug by adding debug => 15 into the arguments of the constructor Graham. On Fri, Apr 20, 2001 at 01:23:43PM +0200, Roland Stigge wrote: > Hi, > > Chris Ridd wrote: > > > > (We are using Net::LDAP 0.22 and OpenLDAP 1.2.11) > > > It seems that my configuration doesn't return any referrals. I have > > > configured two servers, one holding o=epigenomics, the other on > > > c=us,o=epigenomics. Via PHP and ldapsearch tools, the inserted referrals > > > even seem to transparently redirect the client to the second server when > > > accessing/searching the c=us,epigenomics substructure. But with my > > > Net::LDAP code: > > > You are binding using LDAPv2. LDAPv2 did not have referrals. > > > > Some vendors have 'patched in' some support for referrals in LDAPv2, but > > this is completely non-standard and not supported by Net::LDAP. > > > > Try binding with LDAPv3 instead and see what you get. Hint: pass version => > > 3 in the bind call. > > I already tried that: > ----- > $ldap = Net::LDAP->new("wilson"); > $ldap->bind(version => 3); > print "LDAP Version: ",$ldap->version,"\n"; > $mesg = $ldap->search( base => "o=epigenomics", > filter => '(cn=*)', > deref => 3, > ); > > @referrals = $mesg->referrals; > foreach $ref (@referrals) { > print "Referral: ",$ref,"\n"; > } > > print "Return code: ",$mesg->code,"\n"; > print "Error message: \"",$mesg->error,"\"\n"; > > $n = $mesg->all_entries; > print "Number of Entries: ".$n."\n"; > > foreach $entry ($mesg->entries) { > print "dn: ",$entry->dn,"\n"; > } > ----- > > but got the same result: > ----- > LDAP Version: 3 > Return code: 9 > Error message: "Referral: > ldap://deledda/c=gdr,o=epigenomics > ldap://deledda/c=us,o=epigenomics" > Number of Entries: 2 > dn: cn=admin,o=epigenomics > dn: cn=updated,o=epigenomics > ----- > > Even with LDAPv3, I get the same result. "Real" referrals seem to be > suppressed (in the array). Instead, the error message (!) contains the > referral. As you see, I added a referral. So even multiple referrals are > displayed in the error message. > > Is this the desired behavior of Net::LDAP? I don't like the idea to > parse error strings instead of being able to use the native referrals in > $mesg->referrals. > > Thanks in advance. > > bye, > > -- > Roland Stigge > > Epigenomics AG Kastanienallee 24 > www.epigenomics.com 10435 Berlin > |
From: Roland S. <rol...@ep...> - 2001-04-20 12:27:31
|
Hi, Graham Barr wrote: > It would seem the server thinks you are a version 2 client. Error code 9 is > > LDAP_PARTIAL_RESULTS > > Returned to version 2 clients when a referral is returned. The response > will contain a list of URL's for other servers. > > It is then returning the referrals in the error message. Does this mean that I'll have to use this for manually chasing referrals or is there a way to make the server talk to me LDAPv3? > Can you turn on debug by adding debug => 15 into the arguments > of the constructor It's 7k, so I will only forward it to you personally. The others can request it, if needed. ;) bye, -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Graham B. <gb...@po...> - 2001-04-20 12:42:27
|
On Fri, Apr 20, 2001 at 02:27:19PM +0200, Roland Stigge wrote: > Hi, > > Graham Barr wrote: > > It would seem the server thinks you are a version 2 client. Error code 9 is > > > > LDAP_PARTIAL_RESULTS > > > > Returned to version 2 clients when a referral is returned. The response > > will contain a list of URL's for other servers. > > > > It is then returning the referrals in the error message. > > Does this mean that I'll have to use this for manually chasing referrals > or is there a way to make the server talk to me LDAPv3? > > > Can you turn on debug by adding debug => 15 into the arguments > > of the constructor > > It's 7k, so I will only forward it to you personally. > > The others can request it, if needed. ;) OK, I see the problem. You don't check the result of the bind. A few versions back a test was introduced to avoid acidental anonymous binds. This test was that if any arbuments were passed to bind, then you must specify how you want to bind. So $ldap->(version => 3); will just fail with LDAP_INAPPROPRIATE_AUTH, "No AUTH supplied" This probably needs to be fixed. However, this does mean that no bind request is sent. With version 2 a bind was required, but with version 3 it is not. The server should assume a version3 anonymous bind if it has not received a bind request. Anyway, changing your bind to $ldap->bind(version => 3, anonymous => 1); should do the trick. Graham. |
From: Graham B. <gb...@po...> - 2001-04-20 13:01:58
|
On Fri, Apr 20, 2001 at 01:40:24PM +0100, Graham Barr wrote: > Anyway, changing your bind to > > $ldap->bind(version => 3, anonymous => 1); > > should do the trick. Another option is to pass version => 3 into the contructor. Then calling $ldap->bind; will do the right thing. Graham. |
From: Roland S. <rol...@ep...> - 2001-04-20 13:07:03
|
> Another option is to pass version => 3 into the contructor. Then > calling $ldap->bind; will do the right thing. Same problem. -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Roland S. <rol...@ep...> - 2001-04-20 13:03:57
|
Hi, Graham Barr wrote: > OK, I see the problem. > > You don't check the result of the bind. I think now it's clear: withOUT version => 3 : ----- Bind result: 0, Message: Success LDAP Version: 2 Return code: 9 Error message: "Referral: ldap://deledda/c=gdr,o=epigenomics ldap://deledda/c=us,o=epigenomics" Number of Entries: 2 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics ----- WITH version => 3 : ----- Bind result: 2, Message: version not supported LDAP Version: 3 Return code: 9 Error message: "Referral: ldap://deledda/c=gdr,o=epigenomics ldap://deledda/c=us,o=epigenomics" Number of Entries: 2 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics ----- Is it the old (stable) version of OpenLDAP? (1.2.11) Do you suggest updating to 2.0.7? Thanks! bye, -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Clif H. <cl...@di...> - 2001-04-20 13:26:48
|
> > Hi, > > Graham Barr wrote: > > OK, I see the problem. > > > > You don't check the result of the bind. > > I think now it's clear: > part of message removed. > ----- > > Is it the old (stable) version of OpenLDAP? (1.2.11) > > Do you suggest updating to 2.0.7? If you are going to use version 3 ldap you must upgrade to 2.0.7. 1.2.11 is version 2 only. I upgraded to 2.0.7 quite some time ago and I have had no problems with it. > > Thanks! > > bye, > > -- > Roland Stigge > > Epigenomics AG Kastanienallee 24 > www.epigenomics.com 10435 Berlin > > Regards, Clif Harden INTERNET: c-h...@ti... |
From: Roland S. <rol...@ep...> - 2001-04-20 16:43:50
|
Hi all, Clif Harden wrote: > > Is it the old (stable) version of OpenLDAP? (1.2.11) > > Do you suggest updating to 2.0.7? > If you are going to use version 3 ldap you must upgrade > to 2.0.7. 1.2.11 is version 2 only. I upgraded to the new version, now using perl-ldap 0.22, OpenLDAP 2.0.7. Still I don't get the referrals: ----- $ldap = Net::LDAP->new("eigen"); $bindresult = $ldap->bind(version => 3, anonymous => 1); print "Bind result: ",$bindresult->code,", Message: ",$bindresult->error,"\n"; print "LDAP Version: ",$ldap->version,"\n"; print "Search: "; $mesg = $ldap->search( base => "o=epigenomics", filter => '(cn=*)', deref => 3, ); @referrals = $mesg->referrals; foreach $ref (@referrals) { print "Referral: ",$ref,"\n"; } print "Return code: ",$mesg->code,"\n"; print "Error message: \"",$mesg->error,"\"\n"; $n = $mesg->all_entries; print "Number of Entries: ".$n."\n"; foreach $entry ($mesg->entries) { print "dn: ",$entry->dn,"\n"; } ----- output: ----- Bind result: 0, Message: Success LDAP Version: 3 Search: Return code: 0 Error message: "Success" Number of Entries: 2 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics ----- Where is the referral? Do I use the array in the right way? ldapsearch finds it: ----- # search reference ref: ldap://deledda/c=us,o=epigenomics ----- Thank you in advance! bye, -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Graham B. <gb...@po...> - 2001-04-20 16:53:53
|
A debug trace is the only way we are going to be able to help you Graham On Fri, Apr 20, 2001 at 06:43:43PM +0200, Roland Stigge wrote: > Hi all, > > Clif Harden wrote: > > > Is it the old (stable) version of OpenLDAP? (1.2.11) > > > Do you suggest updating to 2.0.7? > > If you are going to use version 3 ldap you must upgrade > > to 2.0.7. 1.2.11 is version 2 only. > > I upgraded to the new version, now using perl-ldap 0.22, OpenLDAP 2.0.7. > Still I don't get the referrals: > > ----- > $ldap = Net::LDAP->new("eigen"); > $bindresult = $ldap->bind(version => 3, anonymous => 1); > print "Bind result: ",$bindresult->code,", Message: > ",$bindresult->error,"\n"; > print "LDAP Version: ",$ldap->version,"\n"; > print "Search: "; > > $mesg = $ldap->search( base => "o=epigenomics", > filter => '(cn=*)', > deref => 3, > ); > @referrals = $mesg->referrals; > > foreach $ref (@referrals) { > print "Referral: ",$ref,"\n"; > } > > print "Return code: ",$mesg->code,"\n"; > print "Error message: \"",$mesg->error,"\"\n"; > > $n = $mesg->all_entries; > print "Number of Entries: ".$n."\n"; > > foreach $entry ($mesg->entries) { > print "dn: ",$entry->dn,"\n"; > } > ----- > > output: > ----- > Bind result: 0, Message: Success > LDAP Version: 3 > Search: Return code: 0 > Error message: "Success" > Number of Entries: 2 > dn: cn=admin,o=epigenomics > dn: cn=updated,o=epigenomics > ----- > > Where is the referral? Do I use the array in the right way? > > ldapsearch finds it: > ----- > # search reference > ref: ldap://deledda/c=us,o=epigenomics > ----- > > Thank you in advance! > > bye, > -- > Roland Stigge > > Epigenomics AG Kastanienallee 24 > www.epigenomics.com 10435 Berlin > |
From: Roland S. <rol...@ep...> - 2001-04-23 07:53:45
|
Hi! Graham Barr wrote: > A debug trace is the only way we are going to be able to help you Sorry: ----- Net::LDAP=HASH(0x80f1538) sending: 30 0C 02 01 01 60 07 02 01 03 04 00 80 00 __ __ 0....`........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 1 0005 60 7: [APPLICATION 0] { 0007 02 1: INTEGER = 3 000A 04 0: STRING = '' 000C 80 0: [CONTEXT 0] 000E : } 000E : } Net::LDAP=HASH(0x80f1538) received: 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 1 0005 61 7: [APPLICATION 1] { 0007 0A 1: ENUM = 0 000A 04 0: STRING = '' 000C 04 0: STRING = '' 000E : } 000E : } Net::LDAP=HASH(0x80f1538) sending: 30 29 02 01 02 63 24 04 0D 6F 3D 65 70 69 67 65 0)...c$..o=epige 6E 6F 6D 69 63 73 0A 01 02 0A 01 03 02 01 00 02 nomics.......... 01 00 01 01 00 87 02 63 6E 30 00 __ __ __ __ __ .......cn0. 0000 30 41: SEQUENCE { 0002 02 1: INTEGER = 2 0005 63 36: [APPLICATION 3] { 0007 04 13: STRING = 'o=epigenomics' 0016 0A 1: ENUM = 2 0019 0A 1: ENUM = 3 001C 02 1: INTEGER = 0 001F 02 1: INTEGER = 0 0022 01 1: BOOLEAN = FALSE 0025 87 2: [CONTEXT 7] 0027 : 63 6E __ __ __ __ __ __ __ __ __ __ __ __ __ __ cn 0029 30 0: SEQUENCE { 002B : } 002B : } 002B : } Net::LDAP=HASH(0x80f1538) received: 30 56 02 01 02 64 51 04 16 63 6E 3D 61 64 6D 69 0V...dQ..cn=admi 6E 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 63 73 30 n,o=epigenomics0 37 30 17 04 0B 6F 62 6A 65 63 74 43 6C 61 73 73 70...objectClass 31 08 04 06 70 65 72 73 6F 6E 30 0D 04 02 63 6E 1...person0...cn 31 07 04 05 61 64 6D 69 6E 30 0D 04 02 73 6E 31 1...admin0...sn1 07 04 05 61 64 6D 69 6E __ __ __ __ __ __ __ __ ...admin 0000 30 86: SEQUENCE { 0002 02 1: INTEGER = 2 0005 64 81: [APPLICATION 4] { 0007 04 22: STRING = 'cn=admin,o=epigenomics' 001F 30 55: SEQUENCE { 0021 30 23: SEQUENCE { 0023 04 11: STRING = 'objectClass' 0030 31 8: SET { 0032 04 6: STRING = 'person' 003A : } 003A : } 003A 30 13: SEQUENCE { 003C 04 2: STRING = 'cn' 0040 31 7: SET { 0042 04 5: STRING = 'admin' 0049 : } 0049 : } 0049 30 13: SEQUENCE { 004B 04 2: STRING = 'sn' 004F 31 7: SET { 0051 04 5: STRING = 'admin' 0058 : } 0058 : } 0058 : } 0058 : } 0058 : } Net::LDAP=HASH(0x80f1538) received: 30 5C 02 01 02 64 57 04 18 63 6E 3D 75 70 64 61 0\...dW..cn=upda 74 65 64 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 63 ted,o=epigenomic 73 30 3B 30 17 04 0B 6F 62 6A 65 63 74 43 6C 61 s0;0...objectCla 73 73 31 08 04 06 70 65 72 73 6F 6E 30 0F 04 02 ss1...person0... 63 6E 31 09 04 07 75 70 64 61 74 65 64 30 0F 04 cn1...updated0.. 02 73 6E 31 09 04 07 75 70 64 61 74 65 64 __ __ .sn1...updated 0000 30 92: SEQUENCE { 0002 02 1: INTEGER = 2 0005 64 87: [APPLICATION 4] { 0007 04 24: STRING = 'cn=updated,o=epigenomics' 0021 30 59: SEQUENCE { 0023 30 23: SEQUENCE { 0025 04 11: STRING = 'objectClass' 0032 31 8: SET { 0034 04 6: STRING = 'person' 003C : } 003C : } 003C 30 15: SEQUENCE { 003E 04 2: STRING = 'cn' 0042 31 9: SET { 0044 04 7: STRING = 'updated' 004D : } 004D : } 004D 30 15: SEQUENCE { 004F 04 2: STRING = 'sn' 0053 31 9: SET { 0055 04 7: STRING = 'updated' 005E : } 005E : } 005E : } 005E : } 005E : } Net::LDAP=HASH(0x80f1538) received: 30 28 02 01 02 73 23 04 21 6C 64 61 70 3A 2F 2F 0(...s#.!ldap:// 64 65 6C 65 64 64 61 2F 63 3D 75 73 2C 6F 3D 65 deledda/c=us,o=e 70 69 67 65 6E 6F 6D 69 63 73 __ __ __ __ __ __ pigenomics 0000 30 40: SEQUENCE { 0002 02 1: INTEGER = 2 0005 73 35: [APPLICATION 19] { 0007 04 33: STRING = 'ldap://deledda/c=us,o=epigenomics' 002A : } 002A : } Net::LDAP=HASH(0x80f1538) received: 30 0C 02 01 02 65 07 0A 01 00 04 00 04 00 __ __ 0....e........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 2 0005 65 7: [APPLICATION 5] { 0007 0A 1: ENUM = 0 000A 04 0: STRING = '' 000C 04 0: STRING = '' 000E : } 000E : } Net::LDAP=HASH(0x80f1538) sending: 30 05 02 01 03 42 00 __ __ __ __ __ __ __ __ __ 0....B. 0000 30 5: SEQUENCE { 0002 02 1: INTEGER = 3 0005 42 0: [APPLICATION 2] 0007 : } Bind result: 0, Message: Success LDAP Version: 3 Search: Return code: 0 Error message: "Success" Number of Entries: 2 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics ----- The referral seems to be transferred but not returned by Net::LDAP. > > I upgraded to the new version, now using perl-ldap 0.22, OpenLDAP 2.0.7. > > Still I don't get the referrals: > > > > ----- > > $ldap = Net::LDAP->new("eigen"); > > $bindresult = $ldap->bind(version => 3, anonymous => 1); > > print "Bind result: ",$bindresult->code,", Message: > > ",$bindresult->error,"\n"; > > print "LDAP Version: ",$ldap->version,"\n"; > > print "Search: "; > > > > $mesg = $ldap->search( base => "o=epigenomics", > > filter => '(cn=*)', > > deref => 3, > > ); > > @referrals = $mesg->referrals; > > > > foreach $ref (@referrals) { > > print "Referral: ",$ref,"\n"; > > } > > > > print "Return code: ",$mesg->code,"\n"; > > print "Error message: \"",$mesg->error,"\"\n"; > > > > $n = $mesg->all_entries; > > print "Number of Entries: ".$n."\n"; > > > > foreach $entry ($mesg->entries) { > > print "dn: ",$entry->dn,"\n"; > > } > > ----- > > > > output: > > ----- > > Bind result: 0, Message: Success > > LDAP Version: 3 > > Search: Return code: 0 > > Error message: "Success" > > Number of Entries: 2 > > dn: cn=admin,o=epigenomics > > dn: cn=updated,o=epigenomics > > ----- > > > > Where is the referral? Do I use the array in the right way? > > > > ldapsearch finds it: > > ----- > > # search reference > > ref: ldap://deledda/c=us,o=epigenomics > > ----- > > > > Thank you in advance! bye, -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Graham B. <gb...@po...> - 2001-04-23 11:27:46
Attachments:
ref.pat
|
On Mon, Apr 23, 2001 at 09:53:37AM +0200, Roland Stigge wrote: > Hi! > > Graham Barr wrote: > > A debug trace is the only way we are going to be able to help you > > Sorry: Ah, OK. Try this patch to Net::LDAP::Search Graham. |
From: Roland S. <rol...@ep...> - 2001-04-23 12:04:34
|
Hi! Graham Barr wrote: > Ah, OK. Try this patch to Net::LDAP::Search OK, let's see... this code: ----- @referrals = $mesg->referrals; foreach $ref (@referrals) { print "Referral: ",$ref,"\n"; } @references = $mesg->references; foreach $ref (@references) { print "Reference: ",$ref,"\n"; } ----- produces: ----- Reference: ldap://deledda/c=us,o=epigenomics ----- So what's the difference between reference and referral? (debug:) ----- Net::LDAP=HASH(0x80f1538) sending: 30 26 02 01 01 60 21 02 01 03 04 16 63 6E 3D 61 0&...`!.....cn=a 64 6D 69 6E 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 dmin,o=epigenomi 63 73 80 04 6D 79 70 77 __ __ __ __ __ __ __ __ cs..mypw 0000 30 38: SEQUENCE { 0002 02 1: INTEGER = 1 0005 60 33: [APPLICATION 0] { 0007 02 1: INTEGER = 3 000A 04 22: STRING = 'cn=admin,o=epigenomics' 0022 80 4: [CONTEXT 0] 0024 : 6D 79 70 77 __ __ __ __ __ __ __ __ __ __ __ __ mypw 0028 : } 0028 : } Net::LDAP=HASH(0x80f1538) received: 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 1 0005 61 7: [APPLICATION 1] { 0007 0A 1: ENUM = 0 000A 04 0: STRING = '' 000C 04 0: STRING = '' 000E : } 000E : } Net::LDAP=HASH(0x80f1538) sending: 30 29 02 01 02 63 24 04 0D 6F 3D 65 70 69 67 65 0)...c$..o=epige 6E 6F 6D 69 63 73 0A 01 02 0A 01 03 02 01 00 02 nomics.......... 01 00 01 01 00 87 02 63 6E 30 00 __ __ __ __ __ .......cn0. 0000 30 41: SEQUENCE { 0002 02 1: INTEGER = 2 0005 63 36: [APPLICATION 3] { 0007 04 13: STRING = 'o=epigenomics' 0016 0A 1: ENUM = 2 0019 0A 1: ENUM = 3 001C 02 1: INTEGER = 0 001F 02 1: INTEGER = 0 0022 01 1: BOOLEAN = FALSE 0025 87 2: [CONTEXT 7] 0027 : 63 6E __ __ __ __ __ __ __ __ __ __ __ __ __ __ cn 0029 30 0: SEQUENCE { 002B : } 002B : } 002B : } Net::LDAP=HASH(0x80f1538) received: 30 70 02 01 02 64 6B 04 16 63 6E 3D 61 64 6D 69 0p...dk..cn=admi 6E 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 63 73 30 n,o=epigenomics0 51 30 17 04 0B 6F 62 6A 65 63 74 43 6C 61 73 73 Q0...objectClass 31 08 04 06 70 65 72 73 6F 6E 30 16 04 0C 75 73 1...person0...us 65 72 50 61 73 73 77 6F 72 64 31 06 04 04 6D 79 erPassword1...my 70 77 30 0D 04 02 63 6E 31 07 04 05 61 64 6D 69 pw0...cn1...admi 6E 30 0F 04 02 73 6E 31 09 04 07 4A 61 63 6B 73 n0...sn1...Jacks 6F 6E __ __ __ __ __ __ __ __ __ __ __ __ __ __ on 0000 30 112: SEQUENCE { 0002 02 1: INTEGER = 2 0005 64 107: [APPLICATION 4] { 0007 04 22: STRING = 'cn=admin,o=epigenomics' 001F 30 81: SEQUENCE { 0021 30 23: SEQUENCE { 0023 04 11: STRING = 'objectClass' 0030 31 8: SET { 0032 04 6: STRING = 'person' 003A : } 003A : } 003A 30 22: SEQUENCE { 003C 04 12: STRING = 'userPassword' 004A 31 6: SET { 004C 04 4: STRING = 'mypw' 0052 : } 0052 : } 0052 30 13: SEQUENCE { 0054 04 2: STRING = 'cn' 0058 31 7: SET { 005A 04 5: STRING = 'admin' 0061 : } 0061 : } 0061 30 15: SEQUENCE { 0063 04 2: STRING = 'sn' 0067 31 9: SET { 0069 04 7: STRING = 'Jackson' 0072 : } 0072 : } 0072 : } 0072 : } 0072 : } Net::LDAP=HASH(0x80f1538) received: 30 74 02 01 02 64 6F 04 18 63 6E 3D 75 70 64 61 0t...do..cn=upda 74 65 64 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 63 ted,o=epigenomic 73 30 53 30 17 04 0B 6F 62 6A 65 63 74 43 6C 61 s0S0...objectCla 73 73 31 08 04 06 70 65 72 73 6F 6E 30 16 04 0C ss1...person0... 75 73 65 72 50 61 73 73 77 6F 72 64 31 06 04 04 userPassword1... 6D 79 70 77 30 0F 04 02 63 6E 31 09 04 07 75 70 mypw0...cn1...up 64 61 74 65 64 30 0F 04 02 73 6E 31 09 04 07 75 dated0...sn1...u 70 64 61 74 65 64 __ __ __ __ __ __ __ __ __ __ pdated 0000 30 116: SEQUENCE { 0002 02 1: INTEGER = 2 0005 64 111: [APPLICATION 4] { 0007 04 24: STRING = 'cn=updated,o=epigenomics' 0021 30 83: SEQUENCE { 0023 30 23: SEQUENCE { 0025 04 11: STRING = 'objectClass' 0032 31 8: SET { 0034 04 6: STRING = 'person' 003C : } 003C : } 003C 30 22: SEQUENCE { 003E 04 12: STRING = 'userPassword' 004C 31 6: SET { 004E 04 4: STRING = 'mypw' 0054 : } 0054 : } 0054 30 15: SEQUENCE { 0056 04 2: STRING = 'cn' 005A 31 9: SET { 005C 04 7: STRING = 'updated' 0065 : } 0065 : } 0065 30 15: SEQUENCE { 0067 04 2: STRING = 'sn' 006B 31 9: SET { 006D 04 7: STRING = 'updated' 0076 : } 0076 : } 0076 : } 0076 : } 0076 : } Net::LDAP=HASH(0x80f1538) received: 30 28 02 01 02 73 23 04 21 6C 64 61 70 3A 2F 2F 0(...s#.!ldap:// 64 65 6C 65 64 64 61 2F 63 3D 75 73 2C 6F 3D 65 deledda/c=us,o=e 70 69 67 65 6E 6F 6D 69 63 73 __ __ __ __ __ __ pigenomics 0000 30 40: SEQUENCE { 0002 02 1: INTEGER = 2 0005 73 35: [APPLICATION 19] { 0007 04 33: STRING = 'ldap://deledda/c=us,o=epigenomics' 002A : } 002A : } Net::LDAP=HASH(0x80f1538) received: 30 5C 02 01 02 64 57 04 18 63 6E 3D 6F 6E 65 6D 0\...dW..cn=onem 6F 72 65 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 63 ore,o=epigenomic 73 30 3B 30 17 04 0B 6F 62 6A 65 63 74 43 6C 61 s0;0...objectCla 73 73 31 08 04 06 70 65 72 73 6F 6E 30 0F 04 02 ss1...person0... 63 6E 31 09 04 07 6F 6E 65 6D 6F 72 65 30 0F 04 cn1...onemore0.. 02 73 6E 31 09 04 07 6F 6E 65 6D 6F 72 65 __ __ .sn1...onemore 0000 30 92: SEQUENCE { 0002 02 1: INTEGER = 2 0005 64 87: [APPLICATION 4] { 0007 04 24: STRING = 'cn=onemore,o=epigenomics' 0021 30 59: SEQUENCE { 0023 30 23: SEQUENCE { 0025 04 11: STRING = 'objectClass' 0032 31 8: SET { 0034 04 6: STRING = 'person' 003C : } 003C : } 003C 30 15: SEQUENCE { 003E 04 2: STRING = 'cn' 0042 31 9: SET { 0044 04 7: STRING = 'onemore' 004D : } 004D : } 004D 30 15: SEQUENCE { 004F 04 2: STRING = 'sn' 0053 31 9: SET { 0055 04 7: STRING = 'onemore' 005E : } 005E : } 005E : } 005E : } 005E : } Net::LDAP=HASH(0x80f1538) received: 30 0C 02 01 02 65 07 0A 01 00 04 00 04 00 __ __ 0....e........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 2 0005 65 7: [APPLICATION 5] { 0007 0A 1: ENUM = 0 000A 04 0: STRING = '' 000C 04 0: STRING = '' 000E : } 000E : } Net::LDAP=HASH(0x80f1538) sending: 30 05 02 01 03 42 00 __ __ __ __ __ __ __ __ __ 0....B. 0000 30 5: SEQUENCE { 0002 02 1: INTEGER = 3 0005 42 0: [APPLICATION 2] 0007 : } Bind result: 0, Message: Success LDAP Version: 3 Search: Reference: ldap://deledda/c=us,o=epigenomics Return code: 0 Error message: "Success" Number of Entries: 3 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics dn: cn=onemore,o=epigenomics ----- bye, -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Chris R. <chr...@me...> - 2001-04-23 12:35:40
|
Roland Stigge <rol...@ep...> wrote: > Hi! > > Graham Barr wrote: >> Ah, OK. Try this patch to Net::LDAP::Search > > OK, let's see... > > this code: > ----- > @referrals = $mesg->referrals; > foreach $ref (@referrals) { > print "Referral: ",$ref,"\n"; > } > > @references = $mesg->references; > foreach $ref (@references) { > print "Reference: ",$ref,"\n"; > } > ----- > > produces: > ----- > Reference: ldap://deledda/c=us,o=epigenomics > ----- > > So what's the difference between reference and referral? A referral is returned when the *entire* operation must be resent to another server. A continuation reference is returned when *part* of the operation must be resent to another server. Cheers, Chris |
From: Chris R. <chr...@me...> - 2001-04-23 16:38:53
|
Chris Ridd <chr...@me...> wrote: > Roland Stigge <rol...@ep...> wrote: >> Hi! >> >> Graham Barr wrote: >>> Ah, OK. Try this patch to Net::LDAP::Search >> >> OK, let's see... >> >> this code: >> ----- >> @referrals = $mesg->referrals; >> foreach $ref (@referrals) { >> print "Referral: ",$ref,"\n"; >> } >> >> @references = $mesg->references; >> foreach $ref (@references) { >> print "Reference: ",$ref,"\n"; >> } >> ----- >> >> produces: >> ----- >> Reference: ldap://deledda/c=us,o=epigenomics >> ----- >> >> So what's the difference between reference and referral? > > A referral is returned when the *entire* operation must be resent to > another server. > > A continuation reference is returned when *part* of the operation must be > resent to another server. See RFC 2251 section 4.5.3 for more details. Cheers, Chris |
From: Graham B. <gb...@po...> - 2001-04-23 16:47:01
|
On Mon, Apr 23, 2001 at 05:38:41PM +0100, Chris Ridd wrote: > >> So what's the difference between reference and referral? > > > > A referral is returned when the *entire* operation must be resent to > > another server. > > > > A continuation reference is returned when *part* of the operation must be > > resent to another server. > > See RFC 2251 section 4.5.3 for more details. Should this be added to the FAQ ? Graham. |
From: Chris R. <chr...@me...> - 2001-04-23 16:53:17
|
Graham Barr <gb...@po...> wrote: > On Mon, Apr 23, 2001 at 05:38:41PM +0100, Chris Ridd wrote: > >> >> So what's the difference between reference and referral? >> > >> > A referral is returned when the *entire* operation must be resent to >> > another server. >> > >> > A continuation reference is returned when *part* of the operation must >> > be resent to another server. >> >> See RFC 2251 section 4.5.3 for more details. > > Should this be added to the FAQ ? > > Graham. Either the FAQ or the man pages, IMO. Cheers, Chris |
From: Graham B. <gb...@po...> - 2001-04-23 17:24:51
|
On Mon, Apr 23, 2001 at 05:53:01PM +0100, Chris Ridd wrote: > Graham Barr <gb...@po...> wrote: > > On Mon, Apr 23, 2001 at 05:38:41PM +0100, Chris Ridd wrote: > > > >> >> So what's the difference between reference and referral? > >> > > >> > A referral is returned when the *entire* operation must be resent to > >> > another server. > >> > > >> > A continuation reference is returned when *part* of the operation must > >> > be resent to another server. > >> > >> See RFC 2251 section 4.5.3 for more details. > > > > Should this be added to the FAQ ? > > > > Graham. > > Either the FAQ or the man pages, IMO. Yes. I think it probably would be better in the docs. I will add it, unless someone beats me to it and sends a patch :) Graham. |
From: Clif H. <cl...@di...> - 2001-04-23 17:52:11
|
> > On Mon, Apr 23, 2001 at 05:53:01PM +0100, Chris Ridd wrote: > > Graham Barr <gb...@po...> wrote: > > > On Mon, Apr 23, 2001 at 05:38:41PM +0100, Chris Ridd wrote: > > > > > >> >> So what's the difference between reference and referral? > > >> > > > >> > A referral is returned when the *entire* operation must be resent to > > >> > another server. > > >> > > > >> > A continuation reference is returned when *part* of the operation must > > >> > be resent to another server. > > >> > > >> See RFC 2251 section 4.5.3 for more details. > > > > > > Should this be added to the FAQ ? > > > > > > Graham. > > > > Either the FAQ or the man pages, IMO. > > Yes. I think it probably would be better in the docs. I will add it, unless > someone beats me to it and sends a patch :) > > Graham. > > I have intends of adding this to the faq. Clif |
From: Roland S. <rol...@ep...> - 2001-04-23 10:46:04
|
Hi! Graham Barr wrote: > A debug trace is the only way we are going to be able to help you Sorry: ----- Net::LDAP=HASH(0x80f1538) sending: 30 0C 02 01 01 60 07 02 01 03 04 00 80 00 __ __ 0....`........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 1 0005 60 7: [APPLICATION 0] { 0007 02 1: INTEGER = 3 000A 04 0: STRING = '' 000C 80 0: [CONTEXT 0] 000E : } 000E : } Net::LDAP=HASH(0x80f1538) received: 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 1 0005 61 7: [APPLICATION 1] { 0007 0A 1: ENUM = 0 000A 04 0: STRING = '' 000C 04 0: STRING = '' 000E : } 000E : } Net::LDAP=HASH(0x80f1538) sending: 30 29 02 01 02 63 24 04 0D 6F 3D 65 70 69 67 65 0)...c$..o=epige 6E 6F 6D 69 63 73 0A 01 02 0A 01 03 02 01 00 02 nomics.......... 01 00 01 01 00 87 02 63 6E 30 00 __ __ __ __ __ .......cn0. 0000 30 41: SEQUENCE { 0002 02 1: INTEGER = 2 0005 63 36: [APPLICATION 3] { 0007 04 13: STRING = 'o=epigenomics' 0016 0A 1: ENUM = 2 0019 0A 1: ENUM = 3 001C 02 1: INTEGER = 0 001F 02 1: INTEGER = 0 0022 01 1: BOOLEAN = FALSE 0025 87 2: [CONTEXT 7] 0027 : 63 6E __ __ __ __ __ __ __ __ __ __ __ __ __ __ cn 0029 30 0: SEQUENCE { 002B : } 002B : } 002B : } Net::LDAP=HASH(0x80f1538) received: 30 56 02 01 02 64 51 04 16 63 6E 3D 61 64 6D 69 0V...dQ..cn=admi 6E 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 63 73 30 n,o=epigenomics0 37 30 17 04 0B 6F 62 6A 65 63 74 43 6C 61 73 73 70...objectClass 31 08 04 06 70 65 72 73 6F 6E 30 0D 04 02 63 6E 1...person0...cn 31 07 04 05 61 64 6D 69 6E 30 0D 04 02 73 6E 31 1...admin0...sn1 07 04 05 61 64 6D 69 6E __ __ __ __ __ __ __ __ ...admin 0000 30 86: SEQUENCE { 0002 02 1: INTEGER = 2 0005 64 81: [APPLICATION 4] { 0007 04 22: STRING = 'cn=admin,o=epigenomics' 001F 30 55: SEQUENCE { 0021 30 23: SEQUENCE { 0023 04 11: STRING = 'objectClass' 0030 31 8: SET { 0032 04 6: STRING = 'person' 003A : } 003A : } 003A 30 13: SEQUENCE { 003C 04 2: STRING = 'cn' 0040 31 7: SET { 0042 04 5: STRING = 'admin' 0049 : } 0049 : } 0049 30 13: SEQUENCE { 004B 04 2: STRING = 'sn' 004F 31 7: SET { 0051 04 5: STRING = 'admin' 0058 : } 0058 : } 0058 : } 0058 : } 0058 : } Net::LDAP=HASH(0x80f1538) received: 30 5C 02 01 02 64 57 04 18 63 6E 3D 75 70 64 61 0\...dW..cn=upda 74 65 64 2C 6F 3D 65 70 69 67 65 6E 6F 6D 69 63 ted,o=epigenomic 73 30 3B 30 17 04 0B 6F 62 6A 65 63 74 43 6C 61 s0;0...objectCla 73 73 31 08 04 06 70 65 72 73 6F 6E 30 0F 04 02 ss1...person0... 63 6E 31 09 04 07 75 70 64 61 74 65 64 30 0F 04 cn1...updated0.. 02 73 6E 31 09 04 07 75 70 64 61 74 65 64 __ __ .sn1...updated 0000 30 92: SEQUENCE { 0002 02 1: INTEGER = 2 0005 64 87: [APPLICATION 4] { 0007 04 24: STRING = 'cn=updated,o=epigenomics' 0021 30 59: SEQUENCE { 0023 30 23: SEQUENCE { 0025 04 11: STRING = 'objectClass' 0032 31 8: SET { 0034 04 6: STRING = 'person' 003C : } 003C : } 003C 30 15: SEQUENCE { 003E 04 2: STRING = 'cn' 0042 31 9: SET { 0044 04 7: STRING = 'updated' 004D : } 004D : } 004D 30 15: SEQUENCE { 004F 04 2: STRING = 'sn' 0053 31 9: SET { 0055 04 7: STRING = 'updated' 005E : } 005E : } 005E : } 005E : } 005E : } Net::LDAP=HASH(0x80f1538) received: 30 28 02 01 02 73 23 04 21 6C 64 61 70 3A 2F 2F 0(...s#.!ldap:// 64 65 6C 65 64 64 61 2F 63 3D 75 73 2C 6F 3D 65 deledda/c=us,o=e 70 69 67 65 6E 6F 6D 69 63 73 __ __ __ __ __ __ pigenomics 0000 30 40: SEQUENCE { 0002 02 1: INTEGER = 2 0005 73 35: [APPLICATION 19] { 0007 04 33: STRING = 'ldap://deledda/c=us,o=epigenomics' 002A : } 002A : } Net::LDAP=HASH(0x80f1538) received: 30 0C 02 01 02 65 07 0A 01 00 04 00 04 00 __ __ 0....e........ 0000 30 12: SEQUENCE { 0002 02 1: INTEGER = 2 0005 65 7: [APPLICATION 5] { 0007 0A 1: ENUM = 0 000A 04 0: STRING = '' 000C 04 0: STRING = '' 000E : } 000E : } Net::LDAP=HASH(0x80f1538) sending: 30 05 02 01 03 42 00 __ __ __ __ __ __ __ __ __ 0....B. 0000 30 5: SEQUENCE { 0002 02 1: INTEGER = 3 0005 42 0: [APPLICATION 2] 0007 : } Bind result: 0, Message: Success LDAP Version: 3 Search: Return code: 0 Error message: "Success" Number of Entries: 2 dn: cn=admin,o=epigenomics dn: cn=updated,o=epigenomics ----- The referral seems to be transferred but not returned by Net::LDAP. > > I upgraded to the new version, now using perl-ldap 0.22, OpenLDAP 2.0.7. > > Still I don't get the referrals: > > > > ----- > > $ldap = Net::LDAP->new("eigen"); > > $bindresult = $ldap->bind(version => 3, anonymous => 1); > > print "Bind result: ",$bindresult->code,", Message: > > ",$bindresult->error,"\n"; > > print "LDAP Version: ",$ldap->version,"\n"; > > print "Search: "; > > > > $mesg = $ldap->search( base => "o=epigenomics", > > filter => '(cn=*)', > > deref => 3, > > ); > > @referrals = $mesg->referrals; > > > > foreach $ref (@referrals) { > > print "Referral: ",$ref,"\n"; > > } > > > > print "Return code: ",$mesg->code,"\n"; > > print "Error message: \"",$mesg->error,"\"\n"; > > > > $n = $mesg->all_entries; > > print "Number of Entries: ".$n."\n"; > > > > foreach $entry ($mesg->entries) { > > print "dn: ",$entry->dn,"\n"; > > } > > ----- > > > > output: > > ----- > > Bind result: 0, Message: Success > > LDAP Version: 3 > > Search: Return code: 0 > > Error message: "Success" > > Number of Entries: 2 > > dn: cn=admin,o=epigenomics > > dn: cn=updated,o=epigenomics > > ----- > > > > Where is the referral? Do I use the array in the right way? > > > > ldapsearch finds it: > > ----- > > # search reference > > ref: ldap://deledda/c=us,o=epigenomics > > ----- > > > > Thank you in advance! bye, -- Roland Stigge Epigenomics AG Kastanienallee 24 www.epigenomics.com 10435 Berlin |
From: Kurt D. Z. <Ku...@Op...> - 2001-04-20 14:24:24
|
At 05:40 AM 4/20/01, Graham Barr wrote: >However, this does mean that no bind request is sent. > >With version 2 a bind was required, but with version 3 it is not. No bind was required in LDAPv2+ (U-Mich based) servers. >The server should assume a version3 anonymous bind if it has not received >a bind request. That's an LDAPv3 requirement. But LDAPv2+ servers where designed and implemented prior to LDAPv3. Kurt |
From: Chris R. <chr...@me...> - 2001-04-20 12:29:30
|
Graham Barr <gb...@po...> wrote: > It would seem the server thinks you are a version 2 client. Error code 9 > is > > LDAP_PARTIAL_RESULTS > > Returned to version 2 clients when a referral is returned. The response > will contain a list of URL's for other servers. Result code 9 is not defined in RFC 2251 (LDAPv3) or RFC 1777 (LDAPv2), so I'm not surprised Net::LDAP isn't doing anything with the contents of the error message. (In fact, the RFCs say you MUST NOT rely on any values of the error message, so returning something apparently necessary in there seems wrong.) Cheers, Chris |