Commit 08bfc32d authored by Per Cederqvist's avatar Per Cederqvist

Updated for the 2.1.0 release.

parent 57667541
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
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.
** The server can tell when it last started, how many texts existed
then, and some other information that was current when it started.
** 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.
** The highest text number can now be retrieved.
** 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.
** 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:
(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.)
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:
** 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
** The following requests can no longer be used until you have logged
** 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
** New aux-item: 35=mx-refuse-import.
** The supplied aux-items.conf file now validates many aux-items more
* 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
* 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
Active timeout 11.5 days Idle timeout while logged in.
The idle timer is reset whenever anything is written to the
** 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
** 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
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
* 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
** 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)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment