From 08bfc32d88f2d216f0c874fc3a09db710d635cdf Mon Sep 17 00:00:00 2001
From: Per Cederqvist <ceder@lysator.liu.se>
Date: Sat, 23 Aug 2003 10:50:31 +0000
Subject: [PATCH] Updated for the 2.1.0 release.

---
 NEWS | 288 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 287 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index b1c5dbcd6..38c1e65b9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,13 +1,205 @@
 Changes in lyskomd 2.1.0 (Release date 2003-08-XX)
 --------------------------------------------------
 
+* Protocol changes: (changes that affect clients)
+
+** The information about which texts you have read is now transmitted
+   in a much more efficient form: as a list of ranges.  Previously, it
+   was transmitted as a number that you have ready everything before,
+   and a list of additional text that you have read.  It is now
+   possible to mark a text as not read, and to efficiently tell the
+   server exactly which texts should be marked as read.  Affected
+   requests:
+
+        107=query-read-texts
+        108=get-membership
+	109=mark-as-unread
+        110=set-read-ranges
+
+   The old requests 98=query-read-texts-10 and 99=get-membership-10
+   will continue to work, but clients are encouraged to switch to the
+   new requests instead.
+
+** The server now keeps real-time statistics about a lot of things,
+   such as the number of pending DNS requests, the number of connected
+   clients, the number of processed requests, the size of various
+   buffers, et c.  You can also get the ascent and descent rates for
+   all measured variables.
+
+        111=get-stats-description
+        112=get-stats
+
+** The server can tell when it last started, how many texts existed
+   then, and some other information that was current when it started.
+
+        113=get-boottime-info
+
+** Three new requests makes it possible to loop through all existing
+   conferences without having to guess what the largest conference
+   number is, and without having to try each number in turn.
+
+        114=first-unused-conf-no
+        116=find-next-conf-no
+        117=find-previous-conf-no
+
+** The highest text number can now be retrieved.
+
+        115=first-unused-text-no
+
+** The times can now be expressed in UTC instead of in the local time
+   zone of the server.  This makes it possible to write a client that
+   displays time in the local time zone of the client, and makes it
+   easier to correctly format dates as "today" or "yesterday" even
+   when the client and server are in different time zones.
+
+        120=set-connection-time-format
+
+** In case you want to traverse texts in a conference (or written by
+   an author) in the direction  from newer to older texts, you can now
+   do so efficiently with these new requests:
+
+        121=local-to-global-reverse
+        122=map-created-texts-reverse
+
+   (The field later-texts-exists in Text-Mapping has been renamed to
+   more-texts-exists, so that it makes sens when these new requests
+   are used.)
+
+** The server is now much more fair in giving each client
+   approximately the same amount of resources while under heavy load.
+   Clients can use these new requests to tell the server that they
+   want more or less than their fair share, by adjusting their weight.
+   (Compare with the "nice" command of Unix.)
+
+        118=get-scheduling
+        119=set-scheduling
+
+   These commands can also set the priority.  As long as a client of
+   priority N has a request for the server, clients with a priority
+   larger than N will be blocked.  However, the current implementation
+   only supports a single priority.
+
+   The scheduling requests are considered experimental.
+
+** The text garb has been modified, so that a fresh comment or
+   footnote to a text prevents the text from being removed.  The
+   amount of extra time the text lives depends on the keep-commented
+   field if the conference status, and defaults to 77 days.  The
+   set-keep-commented request that was previously labeled
+   "Experimental" is now labeled "Recommended", as it actually does
+   something useful now.
+
+** A few new asynchronous messages have been added:
+
+        19=async-new-user-area
+        20=async-new-presentation
+        21=async-new-motd
+        22=async-text-aux-changed
+
+** You can tell the server that you don't want to receive group
+   messages for a group, via the new passive-message-invert bit of the
+   Membership-Type.
+
+** The following requests can no longer be used until you have logged
+   in:
+
+	58=get-last-text
+	60=find-next-text-no
+	61=find-previous-text-no
+
+** You can now modify the type of a recipient (with the add-recipient
+   request) if you are the supervisor of either the author, recipient
+   or sender.  The check used to be more restrictive.
+
+** The following asynchronous messages are now sent to recipients of
+   texts linked to the relevant text: async-deleted-text,
+   async-new-text, async-new-text-old, async-add-recipient and
+   async-sub-recipient.
+
+** New aux-item: 35=mx-refuse-import.
+
+** The supplied aux-items.conf file now validates many aux-items more
+   strictly.
+
+* Protocol specification bugs fixed:
+
+** The descripton of the error code index-out-of-range was wrong for
+   some requests.  See the "Document Edition History" for details.
+
+** async-leave-conf is not sent when a person is deleted.
+
+** add-comment and add-footnote can both return the error codes
+   already-comment and already-footnote.  This ensures that a text
+   cannot be both footnote and comment to the same text at the same
+   time.
+
+* Client-visible bugs fixed:
+
+** The session_start field of a Connection was used both to record the
+   connect time and the login/logout time.  As a result, the
+   connection-time of a Static-Session-Info was not actually static.
+   Fixed by keeping track of the connect time and the login/logout
+   time separately.
+
+** It is now impossible to add the same text as FAQ for the same
+   conference more than once.
+
+** The code that determined who were allowed to remove or add an
+   aux-item from a conference or person was wrong.
+
+** Idle clients are now disconnected after a very long timeout.  The
+   timeout is different during the differen phases of a connection.
+   The following parameters (with the default value) affects this:
+
+	Parameter	 Default	Meaning
+	=========	 =======	=======
+
+	Stale timeout	 60 minutes	Output buffer full and client
+					not reading
+
+	Connect timeout  30 seconds	Idle timeout before sending
+					initial handshake.
+
+	Login timeout	 30 minutes	Idle timeout while not logged
+					in.
+
+	Active timeout	 11.5 days	Idle timeout while logged in.
+
+   The idle timer is reset whenever anything is written to the
+   client.
+
+** If a client sends a 27=mark-as-read request with a too long array,
+   it will now receive the error code long-array instead of a
+   notification of a protocol error.
+
+* Other client-visible changes:
+
+** The server is now more careful never to reuse text, person and
+   conference numbers, even after a crash.
+
+** 27=mark-as-read no longer leaks information about secret
+   conferences.
+
+** IPv6 support has been contributed by Thorild Sel�n.  (Changes made
+   in the last few months may however have broken the code, so it
+   should be considered experimental.)
+
 * Installation changes:
 
+** A serious bug in the SIGWINCH handling has been found but not
+   fixed.  Please see lyskomd.texi before you send a SIGWINCH signal
+   to the server!
+
 ** The file system layout has changed.  The following files and
    directories have been moved.  As a result, it should now be safe to
    install lyskomd with prefix set to /usr/local or even /usr.  The
    default prefix is still /usr/lyskom, however.  See README for
-   upgrade instructions.
+   upgrade instructions.  You should be able to change the file names
+   via standard "./configure" arguments, such as --localstatedir.  See
+   INSTALL.
+
+Parameter	    Old default value       New default value
+=========           =================       =================
 
 lyskomd path:       bin/lyskomd             sbin/lyskomd
 savecore path:      bin/savecore            sbin/savecore-lyskom
@@ -34,6 +226,100 @@ Backup export directory:
 
     All other binaries have also been moved from "bin" to "sbin".
 
+** lyskomd is now officially shut down via SIGTERM.  (SIGHUP still
+   works, and SIGINT now also shuts it down cleanly).  In a future
+   release, SIGHUP will probably change meaning to "re-read the
+   configuration files".
+
+** This release was made using autoconf-2.57 and automake-1.7.6 (with
+   a small patch).
+
+** The following new parameters affect how client scheduling works:
+
+	Penalty per call
+	Penalty per read
+	Max penalty
+	Low penalty
+	Default priority
+	Max priority
+	Default weight
+	Max weight
+
+   See lyskomd.texi for documentation on the parameters.
+
+** The following parameters have been removed:
+
+	Idle timeout
+
+** Most parameters that specify a time period can now accept a suffix
+   that specifies the unit.  If the unit is not given, it defaults to
+   the old unit, which are different for different parameters.
+   Affected parameters:
+
+	Garb busy postponement
+	Garb timeout
+	Sync timeout
+	Garb interval
+	Sync interval
+	Sync retry interval
+	Stale timeout
+	Connect timeout
+	Login timeout
+	Active timeout
+
+** Renamed the following parameters:
+
+	Max client transmit queue  ->  Max client transmit queue messages
+
+** When updateLysKOM sends an email, it now uses the "sendmail"
+   program.  The path is found at configure time, and can be
+   overridden with the parameter "sendmail path".  The special value
+   ":" turns off mail delivery.
+
+** The following parameters not mentioned elsewhere have been added:
+
+	Garb busy postponement
+	Max read_ranges per call
+	Number file
+	Number temp file
+	Statistic name length
+	Max client message size
+	Max client transmit queue bytes
+
+* Bug fixes
+
+** The "Max texts" and "Max conferences" parameters were off by one.
+
+** The server now works on IRIX64 and FreeBSD 4.7.
+
+** The server now stores almost all times and time spans as "struct
+   timeval" or "time_t".  This eliminates a number of potential
+   overflows.
+
+* Other noteworthy improvements
+
+** The format of the var/lyskomd.clients file is now documented.
+
+** The server now uses liboop for the event loop.  As a result, libisc
+   has been heavily mutilated.  Its main function is now to provide
+   output buffering and to handle the details of TCP connection
+   establishment (over both IPv4 and IPv6).
+
+   The server comes with its own version of liboop.  Some
+   modifications had to be made.  (They have been sent to the
+   maintainer.)
+
+** The server now uses adns to resolve IP addresses in an asynchronous
+   way.  (Since adns doesn't support IPv6 addresses, this only works
+   for IPv4 addresses.  The old blocking method is used for IPv6
+   addresses.)  A client that connects can do the initial handshake,
+   up to the point of receiving the string "LysKOM", but after that
+   point the client will be blocked until the DNS resoultion
+   completes.  The client will be totally invisible to other clients
+   until the DNS resolution completes (so that the result of
+   get-static-session-info really is static).
+
+
 Changes in lyskomd 2.0.7 (Release date 2002-11-03)
 --------------------------------------------------
 
-- 
GitLab