----------------------------------------------------------------
Released 2.0.0pre19 2004-01-22

Changes since 2.0.0pre18:

Modules/:
* LDAPObject.c:
  Most deprecated functions of OpenLDAP C API are not used anymore.
* functions.c:
  Removed unused default_ldap_port().
* constants.c:
  Removed unused or silly constants
  AUTH_KRBV4, AUTH_KRBV41, AUTH_KRBV42, URL_ERR_BADSCOPE, URL_ERR_MEM
* errors.c:
  Fixed building with OpenLDAP 2.2.x
  (errors caused by negative error constants in ldap.h)

ldap.ldapobject.LDAPObject:
* Removed unused wrapper methods uncache_entry(), uncache_request(),
  url_search(), url_search_st() and url_search_s()
* New wrapper methods for all the _ext() methods in _ldap.LDAPObject.

ldap.modlist:
* Some performance optimizations and simplifactions
  in function modifyModlist()

----------------------------------------------------------------
Released 2.0.0pre18 2003-12-09

Changes since 2.0.0pre17:

ldap.ldapobject:
* Fixed missing ldap._ldap_function_call() in
  ReconnectLDAPObject.reconnect()

----------------------------------------------------------------
Released 2.0.0pre17 2003-12-03

Changes since 2.0.0pre16:

ldap.functions:
* Fixed ImportError when running python -O

----------------------------------------------------------------
Released 2.0.0pre16 2003-12-02

Changes since 2.0.0pre15:

Modules/:
* Removed definition of unused constant RES_EXTENDED_PARTIAL since
  the corresponding symbol LDAP_RES_EXTENDED_PARTIAL seems to not
  be available in OpenLDAP-HEAD (pre 2.2) anymore.

All in Lib/:
* Fixed some subtle bugs/oddities mentioned by pychecker.

dsml:
* Renamed DSMLWriter._f to DSMLWriter._output_file
* Added wrapper method DSMLWriter.unparse() which simply
  calls DSMLWriter.writeRecord()

ldap.ldapobject:
* Simplified LDAPObject.search_subschemasubentry_s()

ldap.functions:
* Moved ldap._ldap_function_call() into ldap.functions.
* apply() is not used anymore since it seems deprecated

ldap.async:
* Added class DSMLWriter

ldap.schema:
* Removed unused key-word argument strict from
  ldap.schema.subentry.SubSchema.attribute_types()
* Fixed backward compability issue (for Python prior to 2.2) in
  ldap.schema.subentry.SubSchema.listall()
----------------------------------------------------------------
Released 2.0.0pre15 2003-11-11

Changes since 2.0.0pre14:

Modules/:
Follow rule "Always include Python.h first"

ldap.schema.subentry:
* Added new method SubSchema.get_structural_oc()
* Added new method SubSchema.get_applicable_aux_classes()
* Methods SubSchema.listall() and SubSchema.tree() have
  new key-word argument schema_element_filters
* Support for DIT content rules in SubSchema.attribute_types()

----------------------------------------------------------------
Released 2.0.0pre14 2003-10-03

Changes since 2.0.0pre13:

setup.py:
* Some modifications to ease building for Win32
* Added directory Build/ mainly intended for platform-specific
  examples of setup.cfg
* Fixed installing ldap.filter

ldap.ldapobject:
* Added class attribute LDAPObject.network_timeout mapped to
  set_option(ldap.OPT_NETWORK_TIMEOUT,..)
* LDAPObject.search_ext(): Pass arguments serverctrls,clientctrls
  to _ldap.search_ext()

ldap.sasl:
* Added class ldap.sasl.external for handling
  the SASL mechanism EXTERNAL
* Dictionary ldap.sasl.saslmech_handler_class built during import
  for all the known SASL mechanisms derived from class definitions

ldap.schema:
* More graceful handling of KeyError in SubSchema.attribute_types()
* New method SubSchema.get_inheritedattr() for retrieving inherited
  class attributes
* New method SubSchema.get_inheritedobj() for retrieving a
  schema element instance including all inherited class attributes

----------------------------------------------------------------
Released 2.0.0pre13 2003-06-02

Changes since 2.0.0pre12:

ldap.async:
* Checking type of argument writer_obj relaxed in
  LDIFWriter.__init__() since file-like objects are
  not necessarily an instance of file.

ldap.schema:
* ldap.schema.subentry.SubSchema.attribute_types() now correctly
  handles attribute types without NAME set
* If SUP is not defined for a structural object class 'top' is
  assumed to be the only super-class by default
* '_' is now the abstract top node in SubSchema.tree() for all
  schema element classes since ABSTRACT and AUXILIARY object
  classes are not derived from 'top' by default

----------------------------------------------------------------
Released 2.0.0pre12 2003-05-27

Changes since 2.0.0pre11:

New sub-module ldap.filter:
* Added functions escape_filter_chars() and filter_format()

ldap.ldapobject:
* Trace log writes LDAP URI of connection instead of module name
* search_s() passes self.timeout as argument timeout when
  calling search_ext_s()
* Key-word arguments for simple_bind() and simple_bind_s()
  with defaults for anonymous bind.
* LDAPObject.protocol_version is set to LDAPv3 as default
  (this might make code changes necessary in a real LDAPv2
   environment)
* Default for key-word argument trace_stack_limit passed to
  __init__() is 5
* Updated __doc__ strings
* Aligned and tested ReconnectLDAPObject and SmartLDAPObject

ldap.async:
* LDIFWriter uses ldif.LDIFWriter instead of calling
  function ldif.CreateLDIF
* LDIFWriter accepts either file-like object or ldif.LDIFWriter
  instance as argument for specifying the output

ldif:
* Abandoned argument all_records of LDIFRecordList.__init__()

ldapurl:
* urllib.unquote() used instead of urllib.unquote_plus()

----------------------------------------------------------------
Released 2.0.0pre11 2003-05-02

Changes since 2.0.0pre10:

ldap.ldapobject:
* Cosmetic change: Named argument list for LDAPObject.compare()
  instead of *args,**kwargs.
* Fixed bug in ReconnectLDAPObject._apply_method_s() affecting
  compability with Python 2.0. The bug was introduced with
  2.0.0pre09 by dropping use of apply().

ldap.modlist:
* modifyModlist(): Only None is filtered from attribute value lists,
  '' is preserved as valid attribute value. But filtering applies
  to old_value and new_value now.

ldap.schema:
* Zero-length attribute values for schema elements are ignored
  (needed on e.g. Active Directory)

dsml:
Added support for parsing and generating DSMLv1.
Still experimental though.


----------------------------------------------------------------
Released 2.0.0pre10 2003-04-19

Changes since 2.0.0pre09:

ldap.schema:
* Emulate BooleanType for compability with Python2.3 in assert
  statements

----------------------------------------------------------------
Released 2.0.0pre09 2003-04-19

Changes since 2.0.0pre08:

Modified setup.py to support Cyrus-SASL 2.x.

ldap.ldapobject:
* apply() is not used anymore since it seems deprecated
* Fixed __setstate__() and __getstate__() of ReconnectLDAPObject

ldap.schema:
* Completed classes for nameForms, dITStructureRules and
  dITContentRules

----------------------------------------------------------------
Released 2.0.0pre08 2003-04-11

Changes since 2.0.0pre07:

ldap.schema:
* For backward compability with Python versions prior to 2.2
  Lib/ldap/schema/tokenizer.py and Lib/ldap/schema/models.py use
  (()) instead of tuple() for creating empty tuples.

----------------------------------------------------------------
Released 2.0.0pre07 2003-04-03

Changes since 2.0.0pre06:

LDAPObject.c:
  * Wrapped OpenLDAP's ldap_search_ext()
  * Removed empty __doc__ strings
  * Removed fileno
  * Removed all stuff related to caching in OpenLDAP libs

ldap.ldapobject:
  * Fixed SASL rebind in ldap.ldapobject.ReconnectLDAPObject
  * use search_ext() instead ldap_search()
  * new class attribute timeout for setting a global time-out
    value for all synchronous operations

ldap.schema:
* Fixed two typos in ldap.schema.models
* Some attempts to improve performance of parser/tokenizer
* Completely reworked to have separate OID dictionaries for
  the different schema element classes
* Fixed the Demo/schema*.py to reflect changes to ldap.schema

Documentation updates and various __doc__ string modifications.

ldapurl:
  * Removed all Unicode stuff from module ldapurl
  * Consistent URL encoding in module ldapurl

ldif:
  * Removed ldif.FileWriter
  * Proper handling of FILL (see RFC 2849)

----------------------------------------------------------------
Released 2.0.0pre06 2002-09-23

Changes since 2.0.0pre05:
- Fine-grained locking when linking against libldap_r
- New wrapper class ldap.ReconnectLDAPObject
- Security fix to module ldapurl
- Other fixes and improvements to whole package
- LDAPv3 schema support
  (still somewhat premature and undocumented)

----------------------------------------------------------------
Released 2.0.0pre05 2002-07-20

----------------------------------------------------------------
Released 2.0.0pre04 2002-02-09

----------------------------------------------------------------
Released 2.0.0pre02 2002-02-01

----------------------------------------------------------------
Released 1.10alpha3 2000-09-19

$Id: CHANGES,v 1.69 2004/01/22 22:26:56 stroeder Exp $
