1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007
|
Changes in lyskomd 2.1.2 (Release date 2003-08-30)
--------------------------------------------------
* The server crashed if a person has read more than 65535 texts
after the first unread text.
* The internal data structure for handling read texts could be
damaged, resulting in overlapping ranges in the read-ranges part of
a Membership. This version fixes the bug, and automatically fixes
the damage in the database. You don't need to run dbck.
* The mx-refuse-import aux-item has a new supported value: "html".
* A few machine-readable versions of the protocol specification has
been extracted. See Protocol-A.texi for details.
* The garb process is now documented in Protocol-A.texi.
* The garb was running too slowly in version 2.1.0 and 2.1.1.
Changes in lyskomd 2.1.1 (Release date 2003-08-26)
--------------------------------------------------
* The server could crash when a client disconnects. The problem was
introduced in version 2.1.0. All 2.1.0 installations should upgrade
to 2.1.1 as soon as possible.
* A few auxiliary files was missing from the distribution, most
notably src/libraries/adns/changelog.
* The file "aux.h" has been renamed to "aux-no.h". Note: this does
not mean that Cygwin is a recommended environment.
* The exportdb directory, used by splitkomdb, is now created during
"make install".
* The installation instructions forgot a step, so when upgrading the
server would never start if the instructions were followed
literally.
Changes in lyskomd 2.1.0 (Release date 2003-08-24)
--------------------------------------------------
* Protocol changes: (changes that could affect clients)
** 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.
** 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.
** 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.
** If the client sends a number apart from 0 or 1 where a BOOL
argument is expected, the server now responds with the new error
code bad-bool.
* Protocol extensions: (should not affect old 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.
** 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
* 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 is allowed to remove or add an
aux-item from a conference or person was wrong.
** Idle clients are now disconnected after a (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.
** If the output buffer to a client becomes too large the server will
stop reading from that client until some of the output is drained.
The following new parameters affects when the output buffer is
considered to be too large:
Max client transmit queue messages
Max client transmit queue bytes
** In some cases, memcpy() was used to move memory within a buffer,
from a higher to a lower address. The source and destination could
overlap. This might have caused the server to send garbage to
clients in rare occasions, since it is implementation-defined what
happens if memcpy() is used with overlapping source and
destination.
* 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 Seln. (Changes made
in the last few months may however have broken the code, so it
should be considered experimental.)
* 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.
* 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. 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
Data file: db/lyskomd-data var/lyskomd/db/lyskomd-data
Backup file: db/lyskomd-backup var/lyskomd/db/lyskomd-backup
Backup file 2: db/lyskomd-backup-prev var/lyskomd/db/lyskomd-backup-prev
Lock file: db/lyskomd-lock var/lyskomd/db/lyskomd-lock
Text file: db/lyskomd-texts var/lyskomd/db/lyskomd-texts
Number file: db/number.txt var/lyskomd/db/number.txt
Number temp file: db/number.tmp var/lyskomd/db/number.tmp
Text backup file: db/lyskomd-texts-backup var/lyskomd/db/lyskomd-texts-backup
Status file: etc/status var/lyskomd/db/status
Log file: etc/server-log var/lyskomd.log
Log statistics: etc/lyskomd-log var/lyskomd.stats
Memory usage file: etc/memory-usage var/lyskomd.memory
Core directory: cores var/lyskomd.cores
Pid file: etc/pid var/run/lyskomd.pid
Connection status file:
etc/connections.txt var/lyskomd.clients
Connection status temp file:
etc/connections.tmp var/lyskomd.clnt.tmp
Backup export directory:
exportdb var/lyskomd/exportdb
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
Max client transmit queue
** 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
** 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
* 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).
** Some general code cleanup and a few small bug fixes has been made.
Changes in lyskomd 2.0.7 (Release date 2002-11-03)
--------------------------------------------------
* Protocol changes: (changes that affect clients)
** The aux-item send-comments-to has been extended. The value may now
contain an optional recipient type.
** The rules for when a membership is visible is now documented in the
protocol specification. Previously, different requests used
different rules. They are now fixed:
*** query-read-texts, query-read-texts-old and sub-member could return
the wrong error code in several instances.
*** get-membership and get-membership-old didn't always honor the
unread-is-secret flag of a person.
*** get-members and get-members-old could leak information about
secret persons.
*** get-unread-confs was very confused about what memberships it
returned.
* Other client-visible changes:
** If the server fails to save the database, a broadcast message is
sent to everyone that is logged in. (As always, an entry is also
made in the log file.)
* Protocol specification bugs fixed:
** The documentation for the common block of the user area was just
plain wrong.
** The documentation for no-of-created-texts in the Person structure
was wrong.
** The documentation for the privilege bits create-conf and create-pers
was wrong.
** The Protocol A examples for re-z-lookup and lookup-z-name were
wrong.
* Bug fixes that may affect clients:
** According to the documentation, get-membership and
get-membership-old should always have returned the array size even
when the want-read argument is false. However, they always
reported the array size as 0 in that case.
* Protocol specification improvements:
** The documentation for get-person-stat-old was improved.
** Documented the unread-is-secret flag of a person.
** The fact that the last line in a text should not be terminated by a
linefeed character is now documented.
** A recommendation on the ordering of misc-info groups has been
added.
** A new informative appendix that documents some client-specific
aux-items has been added. elisp-client-read-faq and
elisp-client-rejected-recommendation are now documented in that
appendix.
** Added a recommendation that clients should offer to add the author
as a recipient, when the author isn't a member of any of the
recipients.
** A few typos were fixed.
* Protocol extensions:
** Added a new "language" value to the common block.
** The Message-ID of exported texts is now documented.
** New aux-item: world-readable.
** New client-specific aux-items: elisp-client-read-faq and
elisp-client-rejected-recommendation.
* Bug fixes: (not visible by clients)
** If a client disconnects after sending the length of an ARRAY
Aux-Item-Input, but before sending the "{", the server would
crash.
** We now use Xenofarm to compile and test lyskomd automatically on a
compile farm of several different machines. Several problems have
been fixed, so this release should be more portable than previous
versions. Read more about Xenofarm at
http://www.lysator.liu.se/lyskom/lyskom-server/xenofarm.html
** The code has been cleaned up so that many compiler warnings are
gone. (The regex.c file still generates a lot of warnings.)
** Several minor bugs were fixed, and the code was cleaned up in
several ways. See the ChangeLog for all the details.
** The test suite has been extended, primarily with tests for
membership visibility.
** The test suite should now work on more hosts. It makes a few less
assumptions. It is still not as portable as the rest of the
distribution, however.
** Several race conditions in the test suite have been eliminated.
** valgrind has been used to ensure that there are no memory leaks or
memory access errors. A few minor problems were found and fixed.
(A couple of minor leaks still remains.) The configure options
--with-valgrind and --disable-malloc-guards are useful when you want
to run the test suite using valgrind. (Don't use
--disable-malloc-guards on a production use server. Due to bug 691
it might cause crashes.)
** The "Open files:" setting now works even on hosts that don't have
setrlimit, or where setrlimit cannot reduce the number of open
files.
** lyskomd now refuses to use more than FD_SETSIZE file descriptors.
* Improvements: (not visible by clients)
** The new file etc/connections.txt contains a listing of all
sessions, what file descriptor they use, and from where they are
connected. If a runaway client hogs the server, the administrator
can use tools such as strace or truss to find the file descriptor,
and the file descriptor can then be looked up in this file. The
name of the file can be changed via the "Connection status file:"
configuration parameter.
** DNS lookups blocks the server. If a lookup takes more than 1.5
seconds (configurable via "DNS log threshold:") an entry is made in
the log. DNS lookups can also be disabled via "Use DNS:".
** The "-d" option no longer causes lyskomd to run in the foreground;
use the new "-f" option for that purpose. By specifying only "-f"
and not "-d", it is now possible to run lyskomd in the foreground
without increasing the log level. The test suite now uses this to
check what lyskomd writes to the log file.
** NFS-mounted databases might fail under some circumstances. A
warning about that fact has been added to the README file. This
might be fixed in a future release.
Changes in lyskomd 2.0.6 (Release date 2002-03-29)
--------------------------------------------------
* New aux-item: send-comments-to.
* Modified aux-item: faq-text may now be set on a letterbox.
* The Protocol A documentation has been enhanced. See the document
revision in doc/Protocol-A.texi. It can now be formatted as PDF and
DVI. Info is still the best-tested output format.
* The splitkomdb utility is now documented. It is useful for taking
live backups of the lyskomd data base.
* We now use http://bugzilla.lysator.liu.se/ to track bugs and feature
requests in lyskomd. All old FIXME comments, TODO files, et c have
been entered into that system. A few test cases are expected to
fail; they now refer to the corresponding entry in the Bugzilla
system.
* Many minor bugs and potential portability problem have been fixed,
and the code has been cleaned up in several places. See the
ChangeLog for details. lyskomd should now compile under Cygwin.
Changes in lyskomd 2.0.5 (Release date 2001-09-30)
--------------------------------------------------
* New aux-items: mx-mime-belongs-to, mx-mime-part-in, mx-mime-misc,
mx-envelope-sender, mx-mime-file-name, canonical-name, mx-list-name.
* The supervisor of the object that certain aux-items are attached to
can now remove the aux-item. Affected aux-items are redirect,
x-face, pgp-public-key, e-mail-address, faq-text and
allowed-content-type. This is configured via the new owner-delete
attribute of aux-items.conf.
* A bug that caused async-new-recipient to not be sent in some
cases when passive memberships were involved has been fixed.
* The test suite has been updated to use DejaGnu 1.4.2. It has also
been slightly expanded.
Changes in lyskomd 2.0.4 (Release date 2000-09-09)
--------------------------------------------------
* New aux-items: allowed-content-type and recommended-conf.
* The distributed aux-items.conf will silently overwrite any
previously installed aux-items.conf file when "make install" is run.
Take care if you have edited your local copy.
* Information about bcc-recpts was sometimes sent when too often, and
sometimes too seldom. This has been fixed.
* The conference number of secret conferences could leak when
information about the current working conference of a user was sent
to another user. This has been fixed.
* The garb-nice value is internally converted from days to seconds.
That conversion previously used integer arithmetic, so it could
overflow. This has been fixed.
* If the config file contained "Never save: true" the data base was
nevertheless saved if lyskomd terminated normally.
* A bug that could cause a crash when a client sent over-long aux-item
lists to the server has been fixed.
* Sending a SIGWINCH signal to the server will cause it to re-read the
aux-item definition file.
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.
|