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