Changes 0.9.x

History of released versions

1.8 / 1.7 / 1.6 / 1.5 / 1.4 / 1.3 / 1.2 / 1.1 / 1.0 / 0.16 / 0.15 / 0.14 / 0.13 / 0.12 / 0.11 / 0.10 / 0.9 / 0.8 / 0.7 / Ancient / Overview


Release Date: 2001-09-29

Bug fixes and work arounds
  • Added a workaround for misbehaving LDAP servers (e.g. Lotus Domino) which return a single null-byte character in namingContexts attribute of RootDSE.
  • Another workaround for some weird effects if python-ldap is linked against OpenLDAP 2 libs.
  • Fixed race condition in LDAPSession.getRootDSE() which ended with namingContexts attribute having the value None instead of [] under some strange error conditions.


Release Date: 2001-09-23

Installation changes
  • Use separately distributed module PyWebLib for web session handling, form processing, some HTTP header handling and SSL-related environment. Modules cgiforms, cgisession, cgihelper and httphelper are no longer shipped with web2ldap package.
  • Use module ldapthreadlock contributed to python-ldap instead shipping own module ldapthreading.
  • Module ldif is no longer shipped since it was contributed to python-ldap ages ago.
  • Module DNS is no longer distributed within the package. Install PyDNS instead.
  • Format of host-specific parameter addform_oc_list has changed. The tuple now contains the attribute type for forming the RDN. This is pretty convenient. Use it!
  • On Posix platforms a local configuration module (etc/web2ldap in start directory) now has precedence over a system-wide configuration module (/etc/web2ldap). Also getting the configuration module from Windows-specific system directories is not possible anymore.
New features
  • Implemented very basic group management. Make sure to check out button [Groups] in context menu of single entry display (read).
  • Added handling of binary attribute values stored as hex-byte encoding with prefix {ASN}.
User Interface
  • The bind DN (var who) is reused as default in login form if ldap.INVALID_CREDENTIALS was raised after login try.
  • New quick button in ConnInfo for accessing subschemaSubentry.
  • The old password is not requested anymore in the password input form. Instead a relogin window is provided if ldap.INSUFFICIENT_ACCESS is raised.
  • If the user has to do a new login after changing his/her password there is no menu shown anymore.
  • Added search option "exists" to advanced search form. The search string is ignored if this option is chosen.
Code cleaning and performance tuning
  • Removed unused module msshelve.
  • Removed some unnecessary module imports.
  • Separate module ldaputil.passwd is used to set the userPassword attribute instead of doing all the stuff in application module w2lpasswd.
  • Moved application modules pylib/w2l*.py to separate module package directory pylib/w2lapp/.
  • Code-cleaning concerning w2lapp.core.CleanUpThread
  • Some code-cleaning with catching referral exceptions when python-ldap is built with OpenLDAP 2.0.x.
  • Implemented new class ldaputil.ldapurlLDAPUrl which does the whole LDAP URL handling.
  • Lots of small code clean-ups, e.g. substituted lots of lambda, map(), filter function calls with list comprehensions.
  • The dumpasn1 config file is only parsed once at startup and the parsed content is held persistent => tremendous speed-up when displaying certificates and CRLs.
  • Moved creation of modlist's for modify() calls from ldapbase into new sub-module ldaputil.modlist. Functions were renamed.
Bug fixes and work arounds
  • Hopefully fixed bugs with mixed-case handling of LDIF and other input data by rewriting ldapbase.modify_modifylist().
  • Proper handling of lower-cased attribute type names of special root DSE attributes.
  • Catch all exceptions which might occur when calling DNS.ParseResolvConf() in module ldapdns and set ldapdns.dns_module_avail=0 in this case which switches off looking up SRV RRs in DNS. This is a rather crude approach which should be refined in the near future.
  • A bunch of small fixes and clean-ups for nasty things detected by PyChecker.
  • utctime.strftimeiso8601() does not rely on time.strftime() to display timestamps anymore. This makes displaying of all year values possible (not only 0..99,1900.. like enforced by time.strftime()).
  • When retrieving the root DSE "+" (ASCII 43) is used as requested attribute type for OpenLDAP 2.0.x as described in RFC 3673 if the objectClass attribute of root DSE contains "OpenLDAProotDSE".
  • Fixed wrong definition of Mozilla-specific MIME type for attribute certificateRevocationList.


Release Date: 2001-06-23


Release Date: 2001-06-08


Release Date: 2001-05-19


Release Date: 2001-05-15


Release Date: 2001-05-10