You can subscribe to this list here.
2000 |
Jan
|
Feb
(34) |
Mar
(9) |
Apr
|
May
(2) |
Jun
(14) |
Jul
(67) |
Aug
(34) |
Sep
(5) |
Oct
(20) |
Nov
(22) |
Dec
(31) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(15) |
Feb
(16) |
Mar
(20) |
Apr
(13) |
May
(72) |
Jun
(42) |
Jul
(41) |
Aug
(11) |
Sep
(19) |
Oct
(67) |
Nov
(59) |
Dec
(57) |
2002 |
Jan
(74) |
Feb
(69) |
Mar
(34) |
Apr
(55) |
May
(47) |
Jun
(74) |
Jul
(116) |
Aug
(68) |
Sep
(25) |
Oct
(42) |
Nov
(28) |
Dec
(52) |
2003 |
Jan
(19) |
Feb
(18) |
Mar
(35) |
Apr
(49) |
May
(73) |
Jun
(39) |
Jul
(26) |
Aug
(59) |
Sep
(33) |
Oct
(56) |
Nov
(69) |
Dec
(137) |
2004 |
Jan
(276) |
Feb
(15) |
Mar
(18) |
Apr
(27) |
May
(25) |
Jun
(7) |
Jul
(13) |
Aug
(2) |
Sep
(2) |
Oct
(10) |
Nov
(27) |
Dec
(28) |
2005 |
Jan
(22) |
Feb
(25) |
Mar
(41) |
Apr
(17) |
May
(36) |
Jun
(13) |
Jul
(22) |
Aug
(12) |
Sep
(23) |
Oct
(6) |
Nov
(4) |
Dec
|
2006 |
Jan
(11) |
Feb
(3) |
Mar
(5) |
Apr
(22) |
May
(1) |
Jun
(10) |
Jul
(19) |
Aug
(7) |
Sep
(25) |
Oct
(23) |
Nov
(5) |
Dec
(27) |
2007 |
Jan
(25) |
Feb
(17) |
Mar
(44) |
Apr
(8) |
May
(33) |
Jun
(31) |
Jul
(42) |
Aug
(16) |
Sep
(12) |
Oct
(16) |
Nov
(23) |
Dec
(73) |
2008 |
Jan
(26) |
Feb
(6) |
Mar
(46) |
Apr
(17) |
May
(1) |
Jun
(44) |
Jul
(9) |
Aug
(34) |
Sep
(20) |
Oct
(2) |
Nov
(4) |
Dec
(16) |
2009 |
Jan
(14) |
Feb
(3) |
Mar
(45) |
Apr
(52) |
May
(34) |
Jun
(32) |
Jul
(24) |
Aug
(52) |
Sep
(22) |
Oct
(23) |
Nov
(19) |
Dec
(10) |
2010 |
Jan
(10) |
Feb
(13) |
Mar
(22) |
Apr
(9) |
May
(1) |
Jun
(1) |
Jul
(8) |
Aug
(9) |
Sep
(10) |
Oct
(1) |
Nov
(2) |
Dec
(3) |
2011 |
Jan
|
Feb
(18) |
Mar
(39) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Zhang H. <zhb...@gm...> - 2009-03-18 06:32:15
|
Michael Ströder wrote: > Aargh! My fault. Thanks David. > Modules/ldapcontrol.c in CVS HEAD should work now. Tested and it *WORKS* now, Thanks David & Michael. :) -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Michael S. <mi...@st...> - 2009-03-18 06:02:52
|
Michael Ströder wrote: > Zhang Huangbin wrote: >> Michael Ströder wrote: >>> This patch seems to work (already installed at your site ;-). >>> >> Something strange. >> >> The server your tested is CentOS 5.2 x86_64, and it works with your >> patched version. >> >> But on RHEL 5.3 x86_64, it raises ldap.NO_MEMORY error: > > Are you sure that the new version really was installed and gets used? Aargh! My fault. Thanks David. Modules/ldapcontrol.c in CVS HEAD should work now. Ciao, Michael. http://python-ldap.cvs.sourceforge.net/viewvc/python-ldap/python-ldap/Modules/ldapcontrol.c |
From: Sean B. <uni...@gm...> - 2009-03-17 22:53:22
|
Hi, If I switch the control from RefreshPersist(3) to RefreshOnly(1) I get an LDAP_RES_SEARCH_RESULT instead of LDAP_RES_INTERMEDIATE carrying the SyncDoneControl. Strangely enough, the LDAP_RES_SEARCH_RESULT makes it back to my code with an intact control: rtype=101 rdata=[] rmsgid=1 serverctrls=[('1.3.6.1.4.1.4203.1.9.1.3', 0, '01\x04,csn=20090317224602Z#000000#00#000000,rid=000\x01\x01\xff')] So the problem is that the control is lost if it is attached to an LDAP_RES_INTERMEDIATE, but it is not lost when it is attached to an LDAP_RES_SEARCH_RESULT. -- Thanks, Sean Burford |
From: Sean B. <uni...@gm...> - 2009-03-17 21:25:49
|
Hi, I've been working on implementing an RFC 4533 syncrepl consumer using python-ldap. I can't work out why I can't get the SyncDoneControl that is returned with the LDAP_RES_SEARCH_RESULT through python-ldap. The SyncDoneControl contains the cookie that is needed for stateful/minimal syncrepl refresh only, so losing that control makes the code a lot less useful. It looks like SyncStateControl is never returned to the Python code because Modules/LDAPObject.c l_ldap_result3() calls LDAPmessage_to_python() for LDAP_RES_SEARCH_ENTRY. LDAPmessage_to_python() discards controls in the result. I can live with this. I'm mystified as to why Modules/LDAPObject.c l_ldap_result3() doesn't return the SyncDoneControl with the LDAP_RES_SEARCH_RESULT. I've waded through the source and I'm pretty sure that nothing is deliberately filtering out the control. Here we can see that the control is in the result when l_ldap_result3() calls ldap_parse_result(): Breakpoint 2, ldap_parse_result (ld=0x783710, r=0x730830, errcodep=0x7fff5d8582c4, matcheddnp=0x0, errmsgp=0x0, referralsp=0x7fff5d8582a8, serverctrls=0x7fff5d8582a0, freeit=0) at error.c:261 (gdb) p *r->lm_ber $6 = {ber_opts = {lbo_valid = 2, lbo_options = 1, lbo_debug = 0}, ber_tag = 121, ber_len = 81, ber_usertag = 0, ber_buf = 0x7e3d60 "\002\001\001yL\200\0301.3.6.1.4.1.4203.1.9.1.4\2010¢.\004,csn=20090317201420Z#000000#00#000000,rid=000", ber_ptr = 0x7e3d63 "yL\200\0301.3.6.1.4.1.4203.1.9.1.4\2010¢.\004,csn=20090317201420Z#000000#00#000000,rid=000", ber_end = 0x7e3db1 "", ber_sos = 0x0, ber_rwptr = 0x0, ber_memctx = 0x0} (gdb) p *serverctrls $7 = (LDAPControl **) 0x0 Here is my sample code: class SyncRequestControl(ldap.controls.LDAPControl): # The Sync Request Control is an LDAP Control [RFC4511] where the # controlType is the object identifier 1.3.6.1.4.1.4203.1.9.1.1 and the # controlValue, an OCTET STRING, contains a BER-encoded # syncRequestValue. The criticality field is either TRUE or FALSE. # syncRequestValue ::= SEQUENCE { # mode ENUMERATED { # -- 0 unused # refreshOnly (1), # -- 2 reserved # refreshAndPersist (3) # }, # cookie syncCookie OPTIONAL, # reloadHint BOOLEAN DEFAULT FALSE # } # The Sync Request Control is only applicable to the SearchRequest Message. controlType='1.3.6.1.4.1.4203.1.9.1.1' def __init__(self, controlType='1.3.6.1.4.1.4203.1.9.1.1', criticality=False, controlValue=None, encodedControlValue=None): ldap.controls.LDAPControl.__init__(self, self.controlType, criticality, controlValue, encodedControlValue) def encodeControlValue(self, value): # 30 31 Sequence tag (len=0x31) # 0a 01 01 Enumerated (len=0x01) value 0x01 (RefreshOnly) # 04 2C Octet String (len=0x2C) value 'csn=...,rid=000' # 63 73 6e 3d 32 30 30 39 30 33 31 36 31 39 35 35 # 30 39 5a 23 30 30 30 30 30 30 23 30 30 23 30 30 # 30 30 30 30 2c 72 69 64 3d 30 30 30 mode, cookie, reload_hint = value # Enumerated (len=0x01) value 0x01 (RefreshOnly) result_content = struct.pack('BBB', 0x0A, 0x01, mode) # Octet String (optional) if cookie: result_content += struct.pack('BB', 0x04, len(cookie)) result_content += cookie # Boolean (optional) if reload_hint: result_content += struct.pack('BBB', 0x01, 0x01, 0xFF) # Sequence tag result_header = struct.pack('BB', 0x30, len(result_content)) return result_header + result_content ldap.set_option(ldap.OPT_PROTOCOL_VERSION, ldap.VERSION3) ldap.set_option(ldap.OPT_REFERRALS, 0) conn = ldap.initialize(host) sync_req_ctrl=SyncRequestControl(criticality=True, controlValue=(3, cookie, True)) op_id = conn.search_ext(base, ldap.SCOPE_ONELEVEL, attrlist=('dn',), serverctrls=(sync_req_ctrl,), ) # ldap.controls.knownLDAPControls[SyncStateControl.controlType] = SyncStateControl # ldap.controls.knownLDAPControls[SyncDoneControl.controlType] = SyncDoneControl #rtype, rdata, rmsgid, decoded_serverctrl = conn.result3(all=0, timeout=60) rtype, rdata, rmsgid, serverctrls = conn._ldap_call(conn._l.result3,_ldap.RES_ANY,0,60) while rtype: print 'rtype=%s' % rtype print 'rdata=%s' % rdata print 'rmsgid=%s' % rmsgid print 'serverctrls=%s' % serverctrls print '' # rtype, rdata, rmsgid, decoded_serverctrl = conn.result3(all=0, timeout=10) rtype, rdata, rmsgid, serverctrls = conn._ldap_call(conn._l.result3,_ldap.RES_ANY,0,10) -- Thanks, Sean Burford |
From: Michael S. <mi...@st...> - 2009-03-17 12:38:27
|
Zhang Huangbin wrote: > Michael Ströder wrote: >> This patch seems to work (already installed at your site ;-). >> > Something strange. > > The server your tested is CentOS 5.2 x86_64, and it works with your > patched version. > > But on RHEL 5.3 x86_64, it raises ldap.NO_MEMORY error: Are you sure that the new version really was installed and gets used? I'm asking since I also made a mistake regarding this during testing. You might wanna check with python -v which modules get loaded and check the file timestamp of the _ldap.so file. Ciao, Michael. |
From: Zhang H. <zhb...@gm...> - 2009-03-17 03:22:38
|
Michael Ströder wrote: > This patch seems to work (already installed at your site ;-). > > Ciao, Michael. > > Index: Modules/ldapcontrol.c > =================================================================== > RCS file: /cvsroot/python-ldap/python-ldap/Modules/ldapcontrol.c,v > retrieving revision 1.10 > diff -u -r1.10 ldapcontrol.c > --- Modules/ldapcontrol.c 16 Mar 2009 14:54:55 -0000 1.10 > +++ Modules/ldapcontrol.c 16 Mar 2009 17:29:04 -0000 > @@ -300,11 +300,13 @@ > ber_tag_t tag; > struct berval *cookiep; > unsigned long count; > + Py_ssize_t ldctl_value_len; > > if (!PyArg_ParseTuple(args, "s#:decode_page_control", > &ldctl_value.bv_val, &ldctl_value.bv_len)) { > goto endlbl; > } > + ldctl_value.bv_len = (ber_len_t) ldctl_value_len; > > if (!(ber = ber_init(&ldctl_value))) { > LDAPerr(LDAP_NO_MEMORY); > > Hi, Michael. Something strange. The server your tested is CentOS 5.2 x86_64, and it works with your patched version. But on RHEL 5.3 x86_64, it raises ldap.NO_MEMORY error: ---- # python 1.py Getting page 1 Traceback (most recent call last): File "1.py", line 30, in ? rtype, rdata, rmsgid, serverctrls = l.result3(msgid) File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 443, in result3 decoded_serverctrls = DecodeControlTuples(serverctrls) File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 122, in DecodeControlTuples return [ File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 74, in __init__ LDAPControl.__init__(self,ldap.LDAP_CONTROL_PAGE_OID,criticality,controlValue,encodedControlValue) File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 33, in __init__ self.controlValue = controlValue or self.decodeControlValue(encodedControlValue) File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 81, in decodeControlValue size,cookie = _ldap.decode_page_control(encodedValue) ldap.NO_MEMORY ---- But i don't have a public RHEL 5.3 x86_64 server. :( -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Zhang H. <zhb...@gm...> - 2009-03-16 18:35:30
|
Michael Ströder wrote: > This patch seems to work (already installed at your site ;-). > > Ciao, Michael. > > Index: Modules/ldapcontrol.c > =================================================================== > RCS file: /cvsroot/python-ldap/python-ldap/Modules/ldapcontrol.c,v > retrieving revision 1.10 > diff -u -r1.10 ldapcontrol.c > --- Modules/ldapcontrol.c 16 Mar 2009 14:54:55 -0000 1.10 > +++ Modules/ldapcontrol.c 16 Mar 2009 17:29:04 -0000 > @@ -300,11 +300,13 @@ > ber_tag_t tag; > struct berval *cookiep; > unsigned long count; > + Py_ssize_t ldctl_value_len; > > if (!PyArg_ParseTuple(args, "s#:decode_page_control", > &ldctl_value.bv_val, &ldctl_value.bv_len)) { > goto endlbl; > } > + ldctl_value.bv_len = (ber_len_t) ldctl_value_len; > > if (!(ber = ber_init(&ldctl_value))) { > LDAPerr(LDAP_NO_MEMORY); > > > hi, Michael. I found another problem. Below code works: >>> import ldap >>> from ldap.controls import SimplePagedResultsControl >>> SimplePagedResultsControl(ldap.LDAP_CONTROL_PAGE_OID,True,(10,'')).getEncodedTuple() ('1.2.840.113556.1.4.319', True, '0\x05\x02\x01\n\x04\x00') >>> But Demo/page_control.py doesn't work, it raises ldap.NO_MEMORY sometimes, and 'Segmentation fault' too. ---- # python 1.py ldap_create ldap_url_parse_ext(ldap://r6:389/) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.simple_bind (('cn=Manager,dc=iredmail,dc=org', 'passwd', None, None),{}) ldap_sasl_bind ldap_send_initial_request ldap_new_connection 1 1 0 ldap_int_open_connection ldap_connect_to_host: TCP r6:389 ldap_new_socket: 3 ldap_prepare_socket: 3 ldap_connect_to_host: Trying 192.168.122.6:389 ldap_connect_timeout: fd: 3 tm: -1 async: 0 ldap_open_defconn: successful ldap_send_server_request => result: 1 *** ldap://r6:389/ - SimpleLDAPObject.result3 ((1, 1, -1),{}) ldap_result ld 0xb1cd7d0 msgid 1 ldap_chkResponseList ld 0xb1cd7d0 msgid 1 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL wait4msg ld 0xb1cd7d0 msgid 1 (infinite timeout) wait4msg continue ld 0xb1cd7d0 msgid 1 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 1, origid 1, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: Empty ldap_chkResponseList ld 0xb1cd7d0 msgid 1 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 1 all 1 read1msg: ld 0xb1cd7d0 msgid 1 message type bind read1msg: ld 0xb1cd7d0 0 new referrals read1msg: mark request completed, ld 0xb1cd7d0 msgid 1 request done: ld 0xb1cd7d0 msgid 1 res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 1, msgid 1) ldap_free_connection 0 1 ldap_free_connection: refcnt 1 ldap_parse_result ldap_msgfree => result: (97, [], 1, []) *** ldap://r6:389/ - SimpleLDAPObject.search_ext (('domainName=b.cn,o=domains,dc=iredmail,dc=org', 2, '(objectClass=mailUser)', None, 0, [('1.2.840.113556.1.4.319', True, '0\x05\x02\x01\n\x04\x00')], None, -1, 0),{}) ldap_search_ext put_filter: "(objectClass=mailUser)" put_filter: simple put_simple_filter: "objectClass=mailUser" ldap_build_search_req ATTRS: * ldap_send_initial_request ldap_send_server_request => result: 2 Getting page 1 *** ldap://r6:389/ - SimpleLDAPObject.result3 ((2, 1, -1),{}) ldap_result ld 0xb1cd7d0 msgid 2 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL wait4msg ld 0xb1cd7d0 msgid 2 (infinite timeout) wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: Empty ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-entry adding response ld 0xb1cd7d0 msgid 2 type 100: wait4msg continue ld 0xb1cd7d0 msgid 2 all 1 ** ld 0xb1cd7d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:34:51 2009 ** ld 0xb1cd7d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xb1cd7d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0xb1cd7d0 msgid 2 all 1 ldap_chkResponseList returns ld 0xb1cd7d0 NULL ldap_int_select read1msg: ld 0xb1cd7d0 msgid 2 all 1 read1msg: ld 0xb1cd7d0 msgid 2 message type search-result read1msg: ld 0xb1cd7d0 0 new referrals read1msg: mark request completed, ld 0xb1cd7d0 msgid 2 request done: ld 0xb1cd7d0 msgid 2 res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 2, msgid 2) ldap_free_connection 0 1 ldap_free_connection: refcnt 1 adding response ld 0xb1cd7d0 msgid 2 type 101: ldap_parse_result ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_msgfree => result: (101, [('mail=1@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['1'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}xMpCOKC5I4INzFCab3WEmw=='], 'accountStatus': ['active'], 'sn': ['1'], 'homeDirectory': ['/home/vmail'], 'mail': ['1@b.cn'], 'mailMessageStore': ['b.cn/1/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['1']}), ('mail=2@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['2'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}yB5yjZ1ML2NvBn+JzBSGLA=='], 'accountStatus': ['active'], 'sn': ['2'], 'homeDirectory': ['/home/vmail'], 'mail': ['2@b.cn'], 'mailMessageStore': ['b.cn/2/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['2']}), ('mail=3@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['3'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}7MvIfktc4v4oMI/Z8qe68w=='], 'accountStatus': ['active'], 'sn': ['3'], 'homeDirectory': ['/home/vmail'], 'mail': ['3@b.cn'], 'mailMessageStore': ['b.cn/3/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['3']}), ('mail=4@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['4'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}qH/2eaLz5x2RgaZ7dUISLA=='], 'accountStatus': ['active'], 'sn': ['4'], 'homeDirectory': ['/home/vmail'], 'mail': ['4@b.cn'], 'mailMessageStore': ['b.cn/4/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['4']}), ('mail=5@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['5'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}5No7f7vOI0XXdysGdKMY1Q=='], 'accountStatus': ['active'], 'sn': ['5'], 'homeDirectory': ['/home/vmail'], 'mail': ['5@b.cn'], 'mailMessageStore': ['b.cn/5/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['5']}), ('mail=6@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['6'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}FnkJHFqID69vteYIfrGy3A=='], 'accountStatus': ['active'], 'sn': ['6'], 'homeDirectory': ['/home/vmail'], 'mail': ['6@b.cn'], 'mailMessageStore': ['b.cn/6/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['6']}), ('mail=7@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['7'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}jxTkX87qFnpaNt7dS+olQw=='], 'accountStatus': ['active'], 'sn': ['7'], 'homeDirectory': ['/home/vmail'], 'mail': ['7@b.cn'], 'mailMessageStore': ['b.cn/7/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['7']}), ('mail=8@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['8'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}yfD4lfuYq5FZ9R/QKX4jbQ=='], 'accountStatus': ['active'], 'sn': ['8'], 'homeDirectory': ['/home/vmail'], 'mail': ['8@b.cn'], 'mailMessageStore': ['b.cn/8/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['8']}), ('mail=9@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['9'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}RcSMzi4tf73qGvxRx8atJg=='], 'accountStatus': ['active'], 'sn': ['9'], 'homeDirectory': ['/home/vmail'], 'mail': ['9@b.cn'], 'mailMessageStore': ['b.cn/9/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['9']}), ('mail=10@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['10'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}09lEaAKkQll1XTjm0WPoIA=='], 'accountStatus': ['active'], 'sn': ['10'], 'homeDirectory': ['/home/vmail'], 'mail': ['10@b.cn'], 'mailMessageStore': ['b.cn/10/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['10']})], 2, [('1.2.840.113556.1.4.319', 0, '0\r\x02\x01\x00\x04\x08.\x02\x00\x00\x00\x00\x00\x00')]) Traceback (most recent call last): File "1.py", line 32, in ? rtype, rdata, rmsgid, serverctrls = l.result3(msgid) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/ldapobject.py", line 443, in result3 decoded_serverctrls = DecodeControlTuples(serverctrls) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 122, in DecodeControlTuples return [ File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 74, in __init__ LDAPControl.__init__(self,ldap.LDAP_CONTROL_PAGE_OID,criticality,controlValue,encodedControlValue) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 33, in __init__ self.controlValue = controlValue or self.decodeControlValue(encodedControlValue) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 81, in decodeControlValue size,cookie = _ldap.decode_page_control(encodedValue) ldap.NO_MEMORY ldap_free_connection 1 1 ldap_send_unbind ldap_free_connection: actually freed ---- ---- # python 1.py ldap_create ldap_url_parse_ext(ldap://r6:389/) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.simple_bind (('cn=Manager,dc=iredmail,dc=org', 'passwd', None, None),{}) ldap_sasl_bind ldap_send_initial_request ldap_new_connection 1 1 0 ldap_int_open_connection ldap_connect_to_host: TCP r6:389 ldap_new_socket: 3 ldap_prepare_socket: 3 ldap_connect_to_host: Trying 192.168.122.6:389 ldap_connect_timeout: fd: 3 tm: -1 async: 0 ldap_open_defconn: successful ldap_send_server_request => result: 1 *** ldap://r6:389/ - SimpleLDAPObject.result3 ((1, 1, -1),{}) ldap_result ld 0x11df67d0 msgid 1 ldap_chkResponseList ld 0x11df67d0 msgid 1 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL wait4msg ld 0x11df67d0 msgid 1 (infinite timeout) wait4msg continue ld 0x11df67d0 msgid 1 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 1, origid 1, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: Empty ldap_chkResponseList ld 0x11df67d0 msgid 1 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 1 all 1 read1msg: ld 0x11df67d0 msgid 1 message type bind read1msg: ld 0x11df67d0 0 new referrals read1msg: mark request completed, ld 0x11df67d0 msgid 1 request done: ld 0x11df67d0 msgid 1 res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 1, msgid 1) ldap_free_connection 0 1 ldap_free_connection: refcnt 1 ldap_parse_result ldap_msgfree => result: (97, [], 1, []) *** ldap://r6:389/ - SimpleLDAPObject.search_ext (('domainName=b.cn,o=domains,dc=iredmail,dc=org', 2, '(objectClass=mailUser)', None, 0, [('1.2.840.113556.1.4.319', True, '0\x05\x02\x01\n\x04\x00')], None, -1, 0),{}) ldap_search_ext put_filter: "(objectClass=mailUser)" put_filter: simple put_simple_filter: "objectClass=mailUser" ldap_build_search_req ATTRS: * ldap_send_initial_request ldap_send_server_request => result: 2 Getting page 1 *** ldap://r6:389/ - SimpleLDAPObject.result3 ((2, 1, -1),{}) ldap_result ld 0x11df67d0 msgid 2 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL wait4msg ld 0x11df67d0 msgid 2 (infinite timeout) wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: Empty ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-entry adding response ld 0x11df67d0 msgid 2 type 100: wait4msg continue ld 0x11df67d0 msgid 2 all 1 ** ld 0x11df67d0 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Tue Mar 17 02:35:36 2009 ** ld 0x11df67d0 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0x11df67d0 Response Queue: * msgid 2, type 100 chained responses: * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 * msgid 2, type 100 ldap_chkResponseList ld 0x11df67d0 msgid 2 all 1 ldap_chkResponseList returns ld 0x11df67d0 NULL ldap_int_select read1msg: ld 0x11df67d0 msgid 2 all 1 read1msg: ld 0x11df67d0 msgid 2 message type search-result read1msg: ld 0x11df67d0 0 new referrals read1msg: mark request completed, ld 0x11df67d0 msgid 2 request done: ld 0x11df67d0 msgid 2 res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 2, msgid 2) ldap_free_connection 0 1 ldap_free_connection: refcnt 1 adding response ld 0x11df67d0 msgid 2 type 101: ldap_parse_result ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_msgfree => result: (101, [('mail=1@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['1'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}xMpCOKC5I4INzFCab3WEmw=='], 'accountStatus': ['active'], 'sn': ['1'], 'homeDirectory': ['/home/vmail'], 'mail': ['1@b.cn'], 'mailMessageStore': ['b.cn/1/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['1']}), ('mail=2@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['2'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}yB5yjZ1ML2NvBn+JzBSGLA=='], 'accountStatus': ['active'], 'sn': ['2'], 'homeDirectory': ['/home/vmail'], 'mail': ['2@b.cn'], 'mailMessageStore': ['b.cn/2/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['2']}), ('mail=3@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['3'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}7MvIfktc4v4oMI/Z8qe68w=='], 'accountStatus': ['active'], 'sn': ['3'], 'homeDirectory': ['/home/vmail'], 'mail': ['3@b.cn'], 'mailMessageStore': ['b.cn/3/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['3']}), ('mail=4@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['4'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}qH/2eaLz5x2RgaZ7dUISLA=='], 'accountStatus': ['active'], 'sn': ['4'], 'homeDirectory': ['/home/vmail'], 'mail': ['4@b.cn'], 'mailMessageStore': ['b.cn/4/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['4']}), ('mail=5@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['5'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}5No7f7vOI0XXdysGdKMY1Q=='], 'accountStatus': ['active'], 'sn': ['5'], 'homeDirectory': ['/home/vmail'], 'mail': ['5@b.cn'], 'mailMessageStore': ['b.cn/5/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['5']}), ('mail=6@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['6'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}FnkJHFqID69vteYIfrGy3A=='], 'accountStatus': ['active'], 'sn': ['6'], 'homeDirectory': ['/home/vmail'], 'mail': ['6@b.cn'], 'mailMessageStore': ['b.cn/6/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['6']}), ('mail=7@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['7'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}jxTkX87qFnpaNt7dS+olQw=='], 'accountStatus': ['active'], 'sn': ['7'], 'homeDirectory': ['/home/vmail'], 'mail': ['7@b.cn'], 'mailMessageStore': ['b.cn/7/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['7']}), ('mail=8@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['8'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}yfD4lfuYq5FZ9R/QKX4jbQ=='], 'accountStatus': ['active'], 'sn': ['8'], 'homeDirectory': ['/home/vmail'], 'mail': ['8@b.cn'], 'mailMessageStore': ['b.cn/8/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['8']}), ('mail=9@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['9'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}RcSMzi4tf73qGvxRx8atJg=='], 'accountStatus': ['active'], 'sn': ['9'], 'homeDirectory': ['/home/vmail'], 'mail': ['9@b.cn'], 'mailMessageStore': ['b.cn/9/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['9']}), ('mail=10@b.cn,ou=Users,domainName=b.cn,o=domains,dc=iredmail,dc=org', {'cn': ['10'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}09lEaAKkQll1XTjm0WPoIA=='], 'accountStatus': ['active'], 'sn': ['10'], 'homeDirectory': ['/home/vmail'], 'mail': ['10@b.cn'], 'mailMessageStore': ['b.cn/10/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['10']})], 2, [('1.2.840.113556.1.4.319', 0, '0\r\x02\x01\x00\x04\x08.\x02\x00\x00\x00\x00\x00\x00')]) Segmentation fault ---- -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Zhang H. <zhb...@gm...> - 2009-03-16 18:22:54
|
Michael Ströder wrote: > This patch seems to work (already installed at your site ;-). > Ciao, Michael. > > Index: Modules/ldapcontrol.c > =================================================================== > RCS file: /cvsroot/python-ldap/python-ldap/Modules/ldapcontrol.c,v > retrieving revision 1.10 > diff -u -r1.10 ldapcontrol.c > --- Modules/ldapcontrol.c 16 Mar 2009 14:54:55 -0000 1.10 > +++ Modules/ldapcontrol.c 16 Mar 2009 17:29:04 -0000 > @@ -300,11 +300,13 @@ > ber_tag_t tag; > struct berval *cookiep; > unsigned long count; > + Py_ssize_t ldctl_value_len; > > if (!PyArg_ParseTuple(args, "s#:decode_page_control", > &ldctl_value.bv_val, &ldctl_value.bv_len)) { > goto endlbl; > } > + ldctl_value.bv_len = (ber_len_t) ldctl_value_len; > > if (!(ber = ber_init(&ldctl_value))) { > LDAPerr(LDAP_NO_MEMORY); > > > So great, it works now. Big thanks, Michael. :) -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Michael S. <mi...@st...> - 2009-03-16 17:30:48
|
Zhang Huangbin wrote: > Michael Ströder wrote: >> Thanks to Zhang Huangbin for giving me access to his machine for testing. >> So I could track it down. It seems to work with the patch below which I >> committed to CVS HEAD. > > Hi, Michael. Thanks for your quick response and hard work :) > > But i got new error (ldap.NO_MEMORY) here: This patch seems to work (already installed at your site ;-). Ciao, Michael. Index: Modules/ldapcontrol.c =================================================================== RCS file: /cvsroot/python-ldap/python-ldap/Modules/ldapcontrol.c,v retrieving revision 1.10 diff -u -r1.10 ldapcontrol.c --- Modules/ldapcontrol.c 16 Mar 2009 14:54:55 -0000 1.10 +++ Modules/ldapcontrol.c 16 Mar 2009 17:29:04 -0000 @@ -300,11 +300,13 @@ ber_tag_t tag; struct berval *cookiep; unsigned long count; + Py_ssize_t ldctl_value_len; if (!PyArg_ParseTuple(args, "s#:decode_page_control", &ldctl_value.bv_val, &ldctl_value.bv_len)) { goto endlbl; } + ldctl_value.bv_len = (ber_len_t) ldctl_value_len; if (!(ber = ber_init(&ldctl_value))) { LDAPerr(LDAP_NO_MEMORY); |
From: Zhang H. <zhb...@gm...> - 2009-03-16 15:38:46
|
Michael Ströder wrote: > Thanks to Zhang Huangbin for giving me access to his machine for testing. > So I could track it down. It seems to work with the patch below which I > committed to CVS HEAD. Hi, Michael. Thanks for your quick response and hard work :) But i got new error (ldap.NO_MEMORY) here: ---- $ python 1.py ldap_create ldap_url_parse_ext(ldap://r6:389/) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.simple_bind (('cn=Manager,dc=iredmail,dc=org', 'passwd', None, None),{}) ldap_sasl_bind ldap_send_initial_request ldap_new_connection 1 1 0 ldap_int_open_connection ldap_connect_to_host: TCP r6:389 ldap_new_socket: 3 ldap_prepare_socket: 3 ldap_connect_to_host: Trying 192.168.122.6:389 ldap_connect_timeout: fd: 3 tm: -1 async: 0 ldap_open_defconn: successful ldap_send_server_request => result: 1 *** ldap://r6:389/ - SimpleLDAPObject.result3 ((1, 1, -1),{}) ldap_result ld 0xd271300 msgid 1 ldap_chkResponseList ld 0xd271300 msgid 1 all 1 ldap_chkResponseList returns ld 0xd271300 NULL wait4msg ld 0xd271300 msgid 1 (infinite timeout) wait4msg continue ld 0xd271300 msgid 1 all 1 ** ld 0xd271300 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Mon Mar 16 23:38:48 2009 ** ld 0xd271300 Outstanding Requests: * msgid 1, origid 1, status InProgress outstanding referrals 0, parent count 0 ** ld 0xd271300 Response Queue: Empty ldap_chkResponseList ld 0xd271300 msgid 1 all 1 ldap_chkResponseList returns ld 0xd271300 NULL ldap_int_select read1msg: ld 0xd271300 msgid 1 all 1 read1msg: ld 0xd271300 msgid 1 message type bind read1msg: ld 0xd271300 0 new referrals read1msg: mark request completed, ld 0xd271300 msgid 1 request done: ld 0xd271300 msgid 1 res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 1, msgid 1) ldap_free_connection 0 1 ldap_free_connection: refcnt 1 ldap_parse_result ldap_msgfree => result: (97, [], 1, []) *** ldap://r6:389/ - SimpleLDAPObject.search_ext (('o=domains,dc=iredmail,dc=org', 2, '(objectClass=mailUser)', None, 0, [('1.2.840.113556.1.4.319', True, '0\x05\x02\x01\n\x04\x00')], None, -1, 0),{}) ldap_search_ext put_filter: "(objectClass=mailUser)" put_filter: simple put_simple_filter: "objectClass=mailUser" ldap_build_search_req ATTRS: * ldap_send_initial_request ldap_send_server_request => result: 2 Getting page 1 *** ldap://r6:389/ - SimpleLDAPObject.result3 ((2, 1, -1),{}) ldap_result ld 0xd271300 msgid 2 ldap_chkResponseList ld 0xd271300 msgid 2 all 1 ldap_chkResponseList returns ld 0xd271300 NULL wait4msg ld 0xd271300 msgid 2 (infinite timeout) wait4msg continue ld 0xd271300 msgid 2 all 1 ** ld 0xd271300 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Mon Mar 16 23:38:48 2009 ** ld 0xd271300 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xd271300 Response Queue: Empty ldap_chkResponseList ld 0xd271300 msgid 2 all 1 ldap_chkResponseList returns ld 0xd271300 NULL ldap_int_select read1msg: ld 0xd271300 msgid 2 all 1 read1msg: ld 0xd271300 msgid 2 message type search-entry wait4msg continue ld 0xd271300 msgid 2 all 1 ** ld 0xd271300 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Mon Mar 16 23:38:48 2009 ** ld 0xd271300 Outstanding Requests: * msgid 2, origid 2, status InProgress outstanding referrals 0, parent count 0 ** ld 0xd271300 Response Queue: * msgid 2, type 100 ldap_chkResponseList ld 0xd271300 msgid 2 all 1 ldap_chkResponseList returns ld 0xd271300 NULL ldap_int_select read1msg: ld 0xd271300 msgid 2 all 1 read1msg: ld 0xd271300 msgid 2 message type search-result read1msg: ld 0xd271300 0 new referrals read1msg: mark request completed, ld 0xd271300 msgid 2 request done: ld 0xd271300 msgid 2 res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 2, msgid 2) ldap_free_connection 0 1 ldap_free_connection: refcnt 1 adding response ld 0xd271300 msgid 2 type 101: ldap_parse_result ldap_get_dn ldap_first_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_get_values_len ldap_next_attribute ldap_msgfree => result: (101, [('mail=www@a.cn,ou=Users,domainName=a.cn,o=domains,dc=iredmail,dc=org', {'cn': ['www'], 'mailQuota': ['104857600'], 'objectClass': ['inetOrgPerson', 'mailUser', 'top'], 'userPassword': ['{MD5}Tq418bNZd6AOvYCGwlnUyQ=='], 'accountStatus': ['active'], 'sn': ['www'], 'homeDirectory': ['/home/vmail'], 'mail': ['www@a.cn'], 'mailMessageStore': ['a.cn/w/ww/www/'], 'enabledService': ['mail', 'imap', 'pop3', 'smtp', 'deliver'], 'uid': ['www']})], 2, [('1.2.840.113556.1.4.319', 0, '0\x05\x02\x01\x00\x04\x00')]) Traceback (most recent call last): File "1.py", line 31, in ? rtype, rdata, rmsgid, serverctrls = l.result3(msgid) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/ldapobject.py", line 443, in result3 decoded_serverctrls = DecodeControlTuples(serverctrls) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 122, in DecodeControlTuples return [ File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 74, in __init__ LDAPControl.__init__(self,ldap.LDAP_CONTROL_PAGE_OID,criticality,controlValue,encodedControlValue) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 33, in __init__ self.controlValue = controlValue or self.decodeControlValue(encodedControlValue) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 81, in decodeControlValue size,cookie = _ldap.decode_page_control(encodedValue) ldap.NO_MEMORY ldap_free_connection 1 1 ldap_send_unbind ldap_free_connection: actually freed ---- -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Michael S. <mi...@st...> - 2009-03-16 14:55:31
|
Zhang Huangbin wrote: > Michael Ströder wrote: >> Could somebody with more knowledge of C programming please review >> function encode_rfc2696() in Modules/ldapcontrol.c? >> >> The following var declaration could be problematic on 64-bit systems: >> >> unsigned long size; Thanks to Zhang Huangbin for giving me access to his machine for testing. So I could track it down. It seems to work with the patch below which I committed to CVS HEAD. Ciao, Michael. Index: Modules/ldapcontrol.c =================================================================== RCS file: /cvsroot/python-ldap/python-ldap/Modules/ldapcontrol.c,v retrieving revision 1.9 diff -u -r1.9 ldapcontrol.c --- Modules/ldapcontrol.c 20 Mar 2008 12:24:56 -0000 1.9 +++ Modules/ldapcontrol.c 16 Mar 2009 14:48:49 -0000 @@ -241,13 +241,15 @@ PyObject *res = 0; BerElement *ber = 0; struct berval cookie, *ctrl_val; + Py_ssize_t cookie_len; unsigned long size; ber_tag_t tag; if (!PyArg_ParseTuple(args, "is#:encode_page_control", &size, - &cookie.bv_val, &cookie.bv_len)) { + &cookie.bv_val, &cookie_len)) { goto endlbl; } + cookie.bv_len = (ber_len_t) cookie_len; if (!(ber = ber_alloc_t(LBER_USE_DER))) { LDAPerr(LDAP_NO_MEMORY); |
From: Michael S. <mi...@st...> - 2009-03-16 13:45:24
|
Zhang Huangbin wrote: > Michael Ströder wrote: >> Could somebody with more knowledge of C programming please review >> function encode_rfc2696() in Modules/ldapcontrol.c? >> >> The following var declaration could be problematic on 64-bit systems: >> >> unsigned long size; >> >> Another issue could be in decode_rfc2696() (which is not yet reached if >> encode_rfc2696() fails): >> >> unsigned long count; > > I asked friend and he suggests me change them to: > > unsigned long size; => unsigned int size; > unsigned long count; => unsigned int count; > > Re-compile and install, but it raises the same error. I guess both is platform-dependent and hence the error. Do you see any compiler warnings during build of python-ldap? Can you please send the output? Ciao, Michael. |
From: Zhang H. <zhb...@gm...> - 2009-03-16 13:30:03
|
Michael Ströder wrote: > Could somebody with more knowledge of C programming please review > function encode_rfc2696() in Modules/ldapcontrol.c? > > The following var declaration could be problematic on 64-bit systems: > > unsigned long size; > > Another issue could be in decode_rfc2696() (which is not yet reached if > encode_rfc2696() fails): > > unsigned long count; I asked friend and he suggests me change them to: unsigned long size; => unsigned int size; unsigned long count; => unsigned int count; Re-compile and install, but it raises the same error. -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Michael S. <mi...@st...> - 2009-03-16 12:48:48
|
Michael Ströder wrote: > Zhang Huangbin wrote: >> Michael Ströder wrote: >>> To all of the people experiencing problems: >>> Could you please run Demo/page_control.py after applying the attached >>> patch (which enables debug logging). >> Here is output msg: > > So this seems to boil down to that the following commands (lines > wrapped) would fail at your site instead of returning the encoded > control tuple: > >>>> import ldap >>>> from ldap.controls import SimplePagedResultsControl >>>> > SimplePagedResultsControl(ldap.LDAP_CONTROL_PAGE_OID,True,(10,'')).getEncodedTuple() > ('1.2.840.113556.1.4.319', True, '0\x05\x02\x01\n\x04\x00') Could somebody with more knowledge of C programming please review function encode_rfc2696() in Modules/ldapcontrol.c? The following var declaration could be problematic on 64-bit systems: unsigned long size; Another issue could be in decode_rfc2696() (which is not yet reached if encode_rfc2696() fails): unsigned long count; Ciao, Michael. |
From: Zhang H. <zhb...@gm...> - 2009-03-16 12:22:32
|
Michael Ströder wrote: > So this seems to boil down to that the following commands (lines > wrapped) would fail at your site instead of returning the encoded > control tuple: > > >>>> import ldap >>>> from ldap.controls import SimplePagedResultsControl >>>> >>>> > SimplePagedResultsControl(ldap.LDAP_CONTROL_PAGE_OID,True,(10,'')).getEncodedTuple() > ('1.2.840.113556.1.4.319', True, '0\x05\x02\x01\n\x04\x00') > Thanks Michael. :) You are right, here is the output: ---- # python Python 2.4.3 (#1, Sep 17 2008, 16:07:08) [GCC 4.1.2 20071124 (Red Hat 4.1.2-41)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import ldap >>> ldap.__version__ '2.3.6' >>> from ldap.controls import SimplePagedResultsControl >>> SimplePagedResultsControl(ldap.LDAP_CONTROL_PAGE_OID,True,(10,'')).getEncodedTuple() Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 45, in getEncodedTuple return (self.controlType,self.criticality,self.encodeControlValue(self.controlValue)) File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 78, in encodeControlValue return _ldap.encode_page_control(size,cookie) ldap.ENCODING_ERROR ---- What's the problem? How can i solve it? Thanks very much. :) -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Michael S. <mi...@st...> - 2009-03-16 12:13:54
|
Zhang Huangbin wrote: > Michael Ströder wrote: >> To all of the people experiencing problems: >> Could you please run Demo/page_control.py after applying the attached >> patch (which enables debug logging). > > Here is output msg: So this seems to boil down to that the following commands (lines wrapped) would fail at your site instead of returning the encoded control tuple: >>> import ldap >>> from ldap.controls import SimplePagedResultsControl >>> SimplePagedResultsControl(ldap.LDAP_CONTROL_PAGE_OID,True,(10,'')).getEncodedTuple() ('1.2.840.113556.1.4.319', True, '0\x05\x02\x01\n\x04\x00') Ciao, Michael. |
From: Zhang H. <zhb...@gm...> - 2009-03-16 12:01:00
|
Michael Ströder wrote: > To all of the people experiencing problems: > Could you please run Demo/page_control.py after applying the attached > patch (which enables debug logging). > > Index: Demo/page_control.py > =================================================================== > RCS file: /cvsroot/python-ldap/python-ldap/Demo/page_control.py,v > retrieving revision 1.4 > diff -u -r1.4 page_control.py > --- Demo/page_control.py 8 Dec 2006 12:38:39 -0000 1.4 > +++ Demo/page_control.py 16 Mar 2009 11:33:41 -0000 > @@ -6,8 +6,9 @@ > import ldap > from ldap.controls import SimplePagedResultsControl > > +ldap.set_option(ldap.OPT_DEBUG_LEVEL,255) > ldap.set_option(ldap.OPT_REFERRALS, 0) > -l = ldap.initialize(url) > +l = ldap.initialize(url,trace_level=2) > l.protocol_version = 3 > l.simple_bind_s("", "") > > Thanks Michael. :) Here is output msg: ---- $ python page_control.py ldap_create ldap_url_parse_ext(ldap://r6:389/) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.set_option ((17, 3),{}) *** ldap://r6:389/ - SimpleLDAPObject.simple_bind (('cn=Manager,dc=iredmail,dc=org', 'passwd', None, None),{}) ldap_sasl_bind ldap_send_initial_request ldap_new_connection 1 1 0 ldap_int_open_connection ldap_connect_to_host: TCP r6:389 ldap_new_socket: 3 ldap_prepare_socket: 3 ldap_connect_to_host: Trying 192.168.122.6:389 ldap_connect_timeout: fd: 3 tm: -1 async: 0 ldap_open_defconn: successful ldap_send_server_request => result: 1 *** ldap://r6:389/ - SimpleLDAPObject.result3 ((1, 1, -1),{}) ldap_result ld 0x1671b300 msgid 1 ldap_chkResponseList ld 0x1671b300 msgid 1 all 1 ldap_chkResponseList returns ld 0x1671b300 NULL wait4msg ld 0x1671b300 msgid 1 (infinite timeout) wait4msg continue ld 0x1671b300 msgid 1 all 1 ** ld 0x1671b300 Connections: * host: r6 port: 389 (default) refcnt: 2 status: Connected last used: Mon Mar 16 20:00:35 2009 ** ld 0x1671b300 Outstanding Requests: * msgid 1, origid 1, status InProgress outstanding referrals 0, parent count 0 ** ld 0x1671b300 Response Queue: Empty ldap_chkResponseList ld 0x1671b300 msgid 1 all 1 ldap_chkResponseList returns ld 0x1671b300 NULL ldap_int_select read1msg: ld 0x1671b300 msgid 1 all 1 read1msg: ld 0x1671b300 msgid 1 message type bind read1msg: ld 0x1671b300 0 new referrals read1msg: mark request completed, ld 0x1671b300 msgid 1 request done: ld 0x1671b300 msgid 1 res_errno: 0, res_error: <>, res_matched: <> ldap_free_request (origid 1, msgid 1) ldap_free_connection 0 1 ldap_free_connection: refcnt 1 ldap_parse_result ldap_msgfree => result: (97, [], 1, []) Traceback (most recent call last): File "page_control.py", line 24, in ? serverctrls=[lc] File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 468, in search_ext EncodeControlTuples(serverctrls), File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 93, in EncodeControlTuples result = [ File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 45, in getEncodedTuple return (self.controlType,self.criticality,self.encodeControlValue(self.controlValue)) File "/usr/lib64/python2.4/site-packages/ldap/controls.py", line 78, in encodeControlValue return _ldap.encode_page_control(size,cookie) ldap.ENCODING_ERROR ldap_free_connection 1 1 ldap_send_unbind ldap_free_connection: actually freed ---- -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Michael S. <mi...@st...> - 2009-03-16 11:36:26
|
Zhang Huangbin wrote: > I had the same error here while run Demo/page_control.py: To all of the people experiencing problems: Could you please run Demo/page_control.py after applying the attached patch (which enables debug logging). To preclude problems in the 64-bit build of OpenLDAP client libs you could also try paged-search with the command-line tool ldapsearch which essentially uses the same control encoding/decoding functions in libldap. Ciao, Michael. Index: Demo/page_control.py =================================================================== RCS file: /cvsroot/python-ldap/python-ldap/Demo/page_control.py,v retrieving revision 1.4 diff -u -r1.4 page_control.py --- Demo/page_control.py 8 Dec 2006 12:38:39 -0000 1.4 +++ Demo/page_control.py 16 Mar 2009 11:33:41 -0000 @@ -6,8 +6,9 @@ import ldap from ldap.controls import SimplePagedResultsControl +ldap.set_option(ldap.OPT_DEBUG_LEVEL,255) ldap.set_option(ldap.OPT_REFERRALS, 0) -l = ldap.initialize(url) +l = ldap.initialize(url,trace_level=2) l.protocol_version = 3 l.simple_bind_s("", "") |
From: Michael S. <mi...@st...> - 2009-03-16 11:28:38
|
Zhang Huangbin wrote: > Zhang Huangbin wrote: >> Strange, the same code (Demo/page_control.py) works in: >> >> - OS: CentOS 5.2, *i386* >> - Python: 2.4.3-21.el5 (shipped within CentOS) >> - python-ldap: 2.3.6 (installed from source tarball) >> - OpenLDAP: 2.3.27-8.el5_2.4 >> > How can i help developers fix this possible bug? Please feel free to > contact me if you need more information. The problem is that I don't have 64-bit Linux hardware to test myself. And a bug could be in OpenLDAP client libs, Python or python-ldap itself. The OpenLDAP and Python versions mentioned above are indeed quite old. Also I don't know what the distributor CentOS or Red Hat is exactly doing when builing the packages. Dominic tested with a more recent version of the OpenLDAP client libs (2.4.12) but still with pre-installed python 2.4.3-21.el5. Hmm... Ciao, Michael. |
From: Zhang H. <zhb...@gm...> - 2009-03-15 14:10:45
|
Zhang Huangbin wrote: > Strange, the same code (Demo/page_control.py) works in: > > - OS: CentOS 5.2, *i386* > - Python: 2.4.3-21.el5 (shipped within CentOS) > - python-ldap: 2.3.6 (installed from source tarball) > - OpenLDAP: 2.3.27-8.el5_2.4 > How can i help developers fix this possible bug? Please feel free to contact me if you need more information. Thanks very much. :P -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Zhang H. <zhb...@gm...> - 2009-03-15 13:43:58
|
Strange, the same code (Demo/page_control.py) works in: - OS: CentOS 5.2, *i386* - Python: 2.4.3-21.el5 (shipped within CentOS) - python-ldap: 2.3.6 (installed from source tarball) - OpenLDAP: 2.3.27-8.el5_2.4 -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Zhang H. <zhb...@gm...> - 2009-03-15 10:50:31
|
I had the same error here while run Demo/page_control.py: ---- Traceback (most recent call last): File "1.py", line 23, in ? serverctrls=[lc] File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/ldapobject.py", line 501, in search_ext_s msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/ldapobject.py", line 495, in search_ext EncodeControlTuples(serverctrls), File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 110, in EncodeControlTuples result = [ File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 45, in getEncodedTuple return (self.controlType,self.criticality,self.encodeControlValue(self.controlValue)) File "/usr/lib64/python2.4/site-packages/python_ldap-2.3.6-py2.4-linux-x86_64.egg/ldap/controls.py", line 78, in encodeControlValue return _ldap.encode_page_control(size,cookie) ldap.ENCODING_ERROR ---- My env: OS: RHEL 5.3, x86_64 Python: 2.4.3-24.el5 (shipped within RHEL 5.3) python-ldap: 2.3.6 (installed from source tarball) OpenLDAP: 2.3.43-3.el5 (shipped within RHEL 5.3) How can i solve it? -- Best regards. Zhang Huangbin - Open Source Mail Server Solution for RHEL/CentOS 5.x: http://code.google.com/p/iredmail/ |
From: Michael S. <mi...@st...> - 2009-03-09 11:28:01
|
Jan-Frode Myklebust wrote: > On 2009-03-09, Michael Ströder <mi...@st...> wrote: >>> But, it occurred to me that I'm not fully sure what I'm doing >>> when creating the SSHA1 hash, >> If the password is usable afterwards there's nothing wrong with >> client-side password hashing. The salt should be at least 4 bytes long. > > Still, I'm uncertain how f.ex. character encodings will/should be > handled, so it seems safer to let the directory server handle both the > hashing and verification. For LDAPv3 you should pass UTF-8 to the python-ldap functions/methods or before hashing the password. (In theory one has to use SASLprep before the UTF-8 encoding but in most cases this is the same). Ciao, Michael. |
From: Jan-Frode M. <jan...@ta...> - 2009-03-09 11:05:41
|
On 2009-03-09, Michael Ströder <mi...@st...> wrote: > > > > But, it occurred to me that I'm not fully sure what I'm doing > > when creating the SSHA1 hash, > > If the password is usable afterwards there's nothing wrong with > client-side password hashing. The salt should be at least 4 bytes long. Still, I'm uncertain how f.ex. character encodings will/should be handled, so it seems safer to let the directory server handle both the hashing and verification. > > Simply use None for oldpw. > It didn't like None: Traceback (most recent call last): File "./update-ldap-from-atmail.py", line 166, in ? con.passwd_s( dn, None, mailpassword ) File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 330, in passwd_s msgid = self.passwd(user,oldpw,newpw,serverctrls,clientctrls) File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 327, in passwd return self._ldap_call(self._l.passwd,user,oldpw,newpw,EncodeControlTuples(serverctrls),EncodeControlTuples(clientctrls)) File "/usr/lib64/python2.4/site-packages/ldap/ldapobject.py", line 94, in _ldap_call result = func(*args,**kwargs) TypeError: argument 2 must be string or read-only buffer, not None but "" seems to work (after I set up SSL to get around the ldap.CONFIDENTIALITY_REQUIRED). Thanks! -jf |
From: Michael S. <mi...@st...> - 2009-03-09 10:38:00
|
Zhang Huangbin wrote: > Michael Ströder wrote: >> Yes. Other LDAP servers might have a different configuration. Also some >> servers set other password attributes as well (e.g. the smbk5pwd overlay >> for OpenLDAP sets Samba password attributes and the Kerberos keys for a >> heimdal KDC). > > How can i set DEFAULT password-hash in slapd.conf? such as MD5 or whatever. That's more a question for the openldap-software mailing list. Since you already found the password-hash parameter you could simply use it: password-hash {SSHA} Ciao, Michael. |