TODO file for the Ldaptor project.

* rewrite commits 282, 242

* polish and add to setup.py: bin/ldaptor-ldifdiff bin/ldaptor-ldifpatch

* ldaptor-ldap2dhcpconf: data validity

* referrals

* SASL

* renaming objects

* search requested attributes: +, *, + -, and 1.1 support.

* ldaptor-search: twisted support for --base=''

* Samba rid=2*uid+1000, primaryGroupID=2*gid+1001

* Samba pwdLastSet, logonTime, logoffTime, pwdCanChange, pwdMustChange
   = seconds since 1970.

* Samba ntpassword, lmpassword equal clear text passwords: keep
   secret.

* ldaptor.schema: add stringification in the same format it parses.
   bin/ldaptor-fetchschema should be ok already.

* use LineOnlyReceiver

* write a getting started doc with steps #2 and #3 from openldap.org quickstart.html

* ldaptor-ldap2maradns: Anetmask. should set A record as x.y.z.0 and
   TXT as "16" (bitcount)

* ldaptor-ldap2maradns: generate gw.X automatically

* At some stage, ldaptor needs better user interface than what can be
   reasonably built with HTML. Windows compatibility will sadly be of
   utmost importance. Look at

   - Trying to cope with HTML

   - XUL

   - LivePage/LiveEvil

   - wxWindows

   - glade, python-gtk

* ldaptor-getfreenumber take minimum as command line option

* ldapserver handler functions can return only one message, and have
   the awkwark "reply" callback parameter for more. Cannot nicely
   implement as generators, because they can be Deferred. Use a
   Stream, from moshez's callchain.py

* move servicelocationoverride search logic from connector to
   ldap.config

* use ldaptor.config.ILDAPConfig everywhere for
   serviceLocationOverrides etc. by passing around a componentized
   "context" that can be used to access ILDAPConfig. ILDAPConfig
   should only contain parts used by the ldaptor library.

* add entry.namingContexts(), that returns all of the naming contexts
   and not just the one that is parent for entry.dn

* better API to handle controls

* use interfaces and adapters for serializing BER objects

* install unit tests when doing setup.py install

* samba password changing should set these, too:
  - sambaPwdCanChange: 1093889533
  - sambaPwdLastSet: 1093889533
  - sambaPwdMustChange: 2147483647

* ldaptor-passwd doesn't fetch entry objectClasses from server, so it
   never notices it should set samba passwords, too.
