TODO list and ROADMAP

NOTE: [1.0] denotes features to be implemented for 1.0

INTERESTING BUGS

* update browse/schemabrowse ctree on serverlist update
* first startup: deleting default localhost server segfaults
* search mode:
	- change in server config should initialize searchbase combo, too
	- RMB on entry in search mode shouldn't deselect the entry
	- multiple selections, abstract selection list function for delete,
	  export to LDIF etc
* Memory leaks - though it has been getting better. I do no longer belief them
  to be gtk related.
* search mode: (peter)
  Take displaytypes into account when building the search result list. It does
  not make sense to show a jpegPhoto as a string...
* Honor RFC2253 and the possible hex-encoding there even for OpenLDAP 2.0.x
  More generally: Deal with special characters in DNs.
* Take care of possible buffer overflow situations. Pointed out by
  Bernhard Reiter <bernhard@intevation.de>.
* [1.0] Better error reporting of LDAP error situations. Currently we handle
  LDAP_SUCCESS and LDAP_SERVER_DOWN but ignore the rest. Pointed out
  indirectly by Bernhard Reiter <bernhard@intevation.de>.
* [1.0] Fix dt_password.c: handling of the construction of encoded passwords
  (get rid of any strcpy, strcat and only using GByteArray methods)
* [1.0] Think about the moving stuff in browse mode: 
  Either
    - Should move deletion out of the moving business and delay
      it until _after_ we have ended the moving
    - OR should we delete and retry in order to circumvent any
      sizelimits???

UNINTERESTING BUGS

* make refresh_mode_serverlist(): combo in search mode, delete/add/change in
  browse mode. tablist can be used for this now...
* load_context errors should pop up after mainwin

MINOR

* use scrolled area in error_flush: ldifadd.c may generate 1000s of errors

ENHANCEMENTS

* [1.0] Follow referrals
  - somehow indicate a referral in the browse tree and allow to 
    follow it, maybe through the context menu?
* put up rootDSE info in browse mode's server detail (cn=monitor?)
* take schema from entry (done?)
* templates: allow defaults?
* import from LDIF
* Better keyboard support (at least for main menu) (peter)
* [1.0] never do ldap_add when moving trees. Use triangulation like with the
  towers of hanoi
* [1.0] encode passwords in .gq - this doesn't add any real security, but at
  least the password cannot be easily remembered if one you happens to
  glance at it. (This is similar to why HTTP basic authentication
  encodes the password).
* [1.0] More displaytypes
  Most notably a calendar to enter dates and times
* [1.0] Allow to change displaytypes on-the-fly
* [1.0] Rewrite drag-and-drop:
  - _only_ use ldap_modrdn when moving trees within one server. This
    allows to take care of hidden attributes implicitly
* Rewrite the schema browser to also use the GtkCTree widget.
* [1.0] Improve LDAP error reporting

BLUE SKY

* schema designer (when OpenLDAP supports writable schema)
* generate change and undo log in LDIF

--------------------------------------------------------------------------

FIXED BUGS / IMPLEMENTED ENHANCEMENTS

* mainwin: ^c makes a browse tab!
* get rid of hardcoded dep on libssl, only link when needed
* get rid of hardcoded dep on libcrypto - now DISPLAYTYPE_PASSWORD is turned
  off if we do not have crypto support available.
* probe for V2 or V3 on connect, store in struct ldapserver. Use ber_free
  only if V3 supported.
* occasional core-dumps in brose mode - might be related to browsehash_free, 
  hard to reproduce (hopefully fixed)
* I18N (peter)
* Make the search tab context menu (right aka button 3 click) work the same
  way as it does in the other tabs
* When using the dt_oc combo box menu and _not_ selecting a new
  objectClass the objectClass gets deleted from the attribute. This
  may lead to data loss (attributes may be deleted) if the changes get
  applied afterwards. ADDITIONAL NOTE: to make clear what I mean:
  selecting the drop down menu for the dt_oc combobox and then
  dragging the mouse selects the first element of the drop down list,
  which is the empty element. Releasing the mouse effectively removes
  the objectclass (peter)

  FIXED by putting the current value in the first place in the combo
  list. This also makes it easier to remember the old value of the
  combobox.

* Do not show the password in the preferences window if it has been
  entered interactively before (peter)

* changing the RDN suddenly dumps core!!! Seems to be related to 
  refresh_subtree! (peter)

* browse mode: refresh of subtree after RDN mod selects first entry
  in subtree -> find and select the entry with the new RDN instead
  NOTE: This seems to have gotten worse. When testing this, the behaviour
  was totally erratic (peter) - Fixed in new browse mode implementation

* check for the codeset ISO-8859-1 vs ISO8859-1 to be used for iconv
  in configure.in
