Changes in lyskomd 2.0.3 (Release date 1999-07-25)
--------------------------------------------------

* The 2.0.2 release didn't really fix the bug.  This release includes
  a test case that was triggered by the bug, and at least now that
  test case succeeds.  As usual, there are no guarantees, but the bug
  should be fixed now.

Changes in lyskomd 2.0.2 (Release date 1999-07-23)
--------------------------------------------------

* Fixed a bug that caused lyskomd to follow a NULL pointer when
  an empty name was looked up.

Changes in lyskomd 2.0.1 (Release date 1999-07-12)
--------------------------------------------------

* Protocol changes (changes that affect clients)

** Regexp matching is never ever case insensitive.  The behavior of
   regexp matching in release 2.0.0 was severely broken.  We will not
   change this again.

** The author of a text is allowed to change the recipient type (to
   recpt, cc-recpt or bcc-recpt) with the add-recipient call.
   Previously, only the supervisor of the recipient could do this.

* Administration and installation changes

** No asynchronous messages are sent to the clients during shutdown of
   the server.  This speeds up the shutdown slightly.

* Bug fixes

** A buffer overrun and several minor bugs were fixed.

** The created_texts field of persons were not always properly updated
   when texts were deleted.  You may have to run dbck to fix your
   database.

** Changes made to the Conference were sometimes forgotten and not
   saved to disk.  dbck can not yet fix all the errors that may have
   been introduced.

* Performance fixes

** The calls that used regexps were very slow.  The cause was not the
   actual regular expression matching, but that the permission
   checking was done in a broken way.  This has been fixed, and should
   improve performance on many of the calls, but especially for the
   regexp lookup functions.

** The calls that create, change or delete names of persons and
   conferences are now much faster.

** Copying data from lyskomd-backup to lyskomd-data no longer uses
   dynamically allocated memory.

Changes in lyskomd 2.0.0 (Release date 1999-06-27)
--------------------------------------------------

* Protocol changes (changes that affect clients)

** It is now possible to see when a membership was added and by whom.
   Memberships come in several different flavors through the addition
   of a membership type. Currently defined types are secret, passive
   and invitation.

   Since protocol version 9 setting a priority of zero in a conference
   was supposed to indicate passive membership in a conference.  It
   was largely up to the client to implement this. True passive
   memberships have been introduced in this protocol version through
   the Membership-type extension to the Membership type. In order to
   maintain compatibility with clients that interpret priority 0 as
   passive membership, the old calls perform magic, translating
   between priorities and membership types.  Clients that use the new
   calls can now once again use priority 0.

   These new calls include the Membership-type:

        98=query-read-texts
        99=get-membership
        100=add-member
        101=get-members
        102=set-membership-type

** Error reporting from the server has been improved. The possible
   error codes from each call have been checked and documented. In the
   process some calls now return errors they previously did not. Since
   the error returns were never defined, this should not present a
   problem for existing clients. The error-status field is set to
   something semi-useful in all cases.

** Several situations where the server leaked secret information have
   been fixed.

** The conference type has been extended so that it is possible to
   forbid secret members in the conference.  All old calls that wanted
   a conference type now accepts both the old-style type and the
   new-style.  This call returns the new conference type:

        91=get-conf-stat

** Regexp matching is now case insensitive by default. Case sensitivity
   is configurable via a config file for the server.  This is an
   incompatible change.

** It is now possible to attach arbitrary data to conferences and
   texts. This allows simple extensions to server data structures
   without requiring protocol changes. These data object are called
   aux-items, and are configured with the aux-items.conf file. There
   are several predefined aux-items with special meanings; see
   doc/Protocol-A.texi.  These new calls handle aux-items:

        86=create-text
        87=create-anonymous-text
        88=create-conf
        89=create-person
        90=get-text-stat
        92=modify-text-info
        93=modify-conf-info
        94=get-info
        95=modify-system-info
        96=query-predefined-aux-items


** A new recipient type, BCC recipient, has been added. BCC recipients
   are only shown to potential members of the recipient and to the
   sender.  The server accept bcc-recpt on input everywhere where it
   previously accepted recpt or cc-recpt.  This call can return
   bcc-recpt:

        90=get-text-stat

** The server can send asynchronous messages about texts being deleted;
   recipients being added and removed; and memberships being added.
   This should help clients with caches to keep them updated.

** There is a call to get the collate table being used by the server.

        85=get-collate-table

** A call to set the flags field in a person structure has been added.
   The new version of create-person also takes flags as a parameter.

        89=create-person
        106=set-pers-flags

** There is a new parameter (keep_commented) on conferences for tuning
   the garbage collection process. This tuning is not implemented in
   the server, but users and clients are encouraged to start using the
   tuning parameter anyway since the tuning will be implemented in a
   future release.

        91=get-conf-stat
        105=set-keep-commented

** There is a parameter (expire) for configuring automatic removal of
   inactive conferences. This removal is currently not implemented, but
   users and clients are encouraged to start using it anyway and the
   automatic conference deletion procedure will be implemented in the
   near future.

        91=get-conf-stat
        97=set-expire

** Mapping of local text numbers to global text numbers is now much
   more efficient, which should lead to significant performance
   improvements if clients make use of these facilities.

        103=local-to-global
        104=map-created-texts

* Administration and installation changes

** The database format has changed again. Old installations must
   convert their old database--see README for instructions.

** The komrunning and updateLysKOM utilities are now a C programs that
   read the configuration file, instead of shell scripts.  komrunning
   now takes "start" or "stop" as argument instead of "up" and "down".

** The undocumented format of the etc/lyskomd.log file, which stores
   usage statistics, has been changed.

** The server can now reliably handle a lot more than 250 simultaneous
   clients even platforms where a FILE* only can refer to file
   descriptor 0-255.

** You can specify which IP number the server should listen to.  The
   default is still to bind all IP numbers of the host that runs
   lyskomd.

** Support for the MUX protocol has been removed.

** The database is now locked with a lock symlink, so there is less
   risk of accidentally running a lyskomd and dbck or two lyskomd at
   the same time.

* Bug fixes

** Sanity checks in database and protocol code increase stability and
   resilience to client errors and sabotage.

** Portability fixes. This release compiles cleanly on systems such as
   modern Linux systems that define errno as a macro.

* Misc

** Documentation has been moved to two Texinfo files, one that
   specifies LysKOM Protocol A and one that documents lyskomd. The man
   pages are no longer maintained.

** The protocol documentation is more detailed, converted to Texinfo and
   written in English.

** The distribution contains a test suite that is used for regression
   testing the server in development. The test suite should run with no
   unexpected failures.

** We now use GNU automake.

** GNU malloc is no longer included in the distribution.

** Updated to use libisc 1.00 (with a few minor modifications; see
   src/libraries/libisc-new/ChangeLog).


Changes in lyskomd 1.9.0 (Release date 1996-08-04)
--------------------------------------------------

* The database format has changed.  Old installations must convert
  their old database -- see INSTALL for instructions.  The database
  now stores information about which text that is the
  message-of-the-day, so that information no longer has to be set in
  the config file.

* dbck now uses GNU getopt, and can take long options.  See the man page
  or "dbck --help".

* dbck can now be used to reset the password of a single user to the
  empty string (using the new --clear-password option) or give a user
  all available privileges.  This is handy if you forget the password
  of the LysKOM user with all privileges, or if you happen to delete
  that person by mistake.

* Portability fixes.  This release of lyskomd has been compiled with 4
  different compilers on 8 different CPU:s using 9 different OS:s.  3
  different make programs have been used.

* The server supports idle-time handling using 3 new calls.  Clients
  are expected to use this new functionality shortly.

* Anonymous texts are still allowed per default, but it is now
  possible to set a bit in the conference type of a conference so that
  anonymous texts are rejected.

* New simplified rules for when adding and subtracting comment and
  footnote links is allowed.

* Clients can now tell the server which asynchronous calls they are
  interrested in receiving.  This change can potentially decrease the
  network bandwidth used by lyskomd in the future.

* Forward compatibility: the server now returns a normal error code
  when the client attempts to use an unsupported call.  The client can
  now reliably try new calls and see if the server supports them.

* Several bug fixes.  The most important is probably that lyskomd
  should now stop cleanly when a HUP is received, even if a second HUP
  signal is received while it is going down.  This didn't work on all
  platforms.


Changes in lyskomd 1.8.0 (Release date 1995-11-08)
--------------------------------------------------

* If configured with --with-gnu-malloc lyskomd will use the GNU malloc
  package instead of the system-supplied malloc.  GNU malloc is
  included in the distribution.

* The asynchronous message async_rejected_connection is now sent at
  most once per minute.

* Lyskomd 1.8.0 implements protocol A level 8.  See doc/prot-A.txt for
  information about the new features it contains.  The database
  currently still only stores four bits of the conf_type, however, so
  it is useless to use the new anarchy bit until the next release.

* You can now specify where lyskomd should dump core (if that should
  ever happen) using the "Core directory" parameter.

* Can now handle 1500000 texts and 4765 persons/conferences.

* Text garbing can now be turned off completely from the config file.

* dbck -t now dumps a list of all existing text numbers to stdout.

* Some minor portability fixes.  Some bug fixes.  See the various
  ChangeLogs for details.

Changes in lyskomd 1.7.1 (Release date 1995-01-08)
--------------------------------------------------

* doc/prot-A.txt is improved.

* Minor portability changes to make lyskomd compile under Solaris 2.4,
  Ultrix 4.4 and Dynix 3.0.14.

* Fixed bugs that caused "./configure;make;make distclean" to fail to
  remove all created files.

* The default installation prefix is now, once again, /usr/lyskom.
  By accident it was changed to /usr/local in 1.7.0.

Changes in lyskomd 1.7.0 (Release date 1994-12-31)
--------------------------------------------------

* New calls "re_z_lookup" and "lookup_z_name" allows client to list
  conference names *fast*.

* New call "get_version_info" returns information about the protocol
  level implemented by the server, the server name, and the server
  version number.

* The call "send_message" now accepts a conference as recipient, and
  will direct the message to all members of that conference that are
  currently logged on.

* The file doc/prot-A.txt is updated.  The current protocol version is
  (somewhat arbitrarily) defined as 7.

* If the file system holding the LysKOM database was full while
  somebody tried to create a text strange things could happen.  Error
  checking has been added, and the client will now receive a
  KOM_TEMPFAIL if there is not enough space left on the device.

* The 1.6.6 distribution contained some junk files, and others (such
  as the global ChangeLog) were missing.  This has now been fixed.

* Autoconf 2.1 has generated the current configure script.

* The obsolete asynchronous message i_am_off is no longer sent.

Changes in lyskomd 1.6.6 (Release date 1994-11-15)
--------------------------------------------------

* Can now handle 1000000 texts and 4765 persons/conferences.

* mark_as_read can (hopefully) no longer cause the server to crash.

Changes in lyskomd 1.6.5 (Never released, used since 1994-10-24)
-----------------------------------------

* New configuration parameter "Open files" can be used on hosts that
  support setrlimit to increase the limit on simultaneous connections.

* New configuration parameter "Force ISO 8859-1" assists in
  environments where setlocale() is broken or lacks support for
  ISO 8859-1.

* Slightly improved configure.in script.

* Many harmless warnings and some errors from apcc removed.

* NEWS entry for 1.6.4 was added.

Changes in lyskomd 1.6.4 (Release date 1994-06-30)
--------------------------------------------------

The call get-last-text now works.  It has been broken since 12 oct
1993.

It is now impossible to add a text to a conference unless the sender
is able to enter texts into it.

Changes in lyskomd 1.6.3 (Release date 1994-06-20)
--------------------------------------------------

One bug was fixed: it is now possible to compile src/server/simple-cache.c.

Changes in lyskomd 1.6.2 (Release date 1994-06-19)
--------------------------------------------------

This is a bug-fix release.

* The parameter ``Default change name capability'' was ignored, so any
  person created with release 1.6.1 of the server cannot change his
  name.  Use "dbck -r -c" to set the bit for everyone.

* The -c option to dbck is new.

* The parameter ``Ident-authentication'' now works, so it is now
  possible to turn off ident authentication.

* find_previous_text_no is now much more efficient if the client tries
  to search for a very large number.  Version L0.12 of the tty-client
  will probably use find_previous_text_no(MAX_TEXT_NO), so this fix is
  important.

For older news, see the various ChangeLog files.