From a07f6fcddc7fb42c64c3f7221251bb7f7fff203c Mon Sep 17 00:00:00 2001 From: David Byers <byers@lysator.liu.se> Date: Fri, 21 May 1999 11:32:06 +0000 Subject: [PATCH] Merged lyskomdb.texi inteo lyskomd.texi Removed outdated files. --- doc/ADMINISTRATION | 67 --- doc/Buggar.fixade | 506 ------------------- doc/Bugrapporter | 740 ---------------------------- doc/IDEAS | 6 + doc/LOGG | 77 --- doc/Mailinglist | 13 - doc/Makefile.am | 20 +- doc/Protocol-A.texi | 15 +- doc/README | 79 --- doc/aux-info.doc | 82 --- doc/clients.assigned | 7 - doc/dbck.latexinfo | 121 ----- doc/dbck.texi | 309 ------------ doc/disc-cache.spec | 174 ------- doc/hacking.texi | 959 ------------------------------------ doc/known-server-bugs | 10 - doc/known-servers | 14 - doc/lyskomd-database-format | 141 ------ doc/lyskomd.texi | 196 +++++++- doc/lyskomdb.texi | 256 ---------- doc/mall-swe.latexinfo | 90 ---- doc/mall.latexinfo | 77 --- doc/misc_items | 43 -- doc/misc_items_a | 94 ---- doc/prot-a-tankar | 9 - doc/prot_a | 42 -- doc/security-levels.txt | 53 -- doc/server-async.extend | 21 - doc/server-config.extend | 22 - doc/server.extend | 60 --- doc/skeleton.doc | 13 - doc/what-is-unread.swe | 145 ------ 32 files changed, 218 insertions(+), 4243 deletions(-) delete mode 100644 doc/ADMINISTRATION delete mode 100644 doc/Buggar.fixade delete mode 100644 doc/Bugrapporter delete mode 100644 doc/LOGG delete mode 100644 doc/Mailinglist delete mode 100644 doc/README delete mode 100644 doc/aux-info.doc delete mode 100644 doc/clients.assigned delete mode 100644 doc/dbck.latexinfo delete mode 100644 doc/dbck.texi delete mode 100644 doc/disc-cache.spec delete mode 100644 doc/hacking.texi delete mode 100644 doc/known-server-bugs delete mode 100644 doc/known-servers delete mode 100644 doc/lyskomd-database-format delete mode 100644 doc/lyskomdb.texi delete mode 100644 doc/mall-swe.latexinfo delete mode 100644 doc/mall.latexinfo delete mode 100644 doc/misc_items delete mode 100644 doc/misc_items_a delete mode 100644 doc/prot-a-tankar delete mode 100644 doc/prot_a delete mode 100644 doc/security-levels.txt delete mode 100644 doc/server-async.extend delete mode 100644 doc/server-config.extend delete mode 100644 doc/server.extend delete mode 100644 doc/skeleton.doc delete mode 100644 doc/what-is-unread.swe diff --git a/doc/ADMINISTRATION b/doc/ADMINISTRATION deleted file mode 100644 index 265ad1880..000000000 --- a/doc/ADMINISTRATION +++ /dev/null @@ -1,67 +0,0 @@ - Administrating a LysKOM site - ============================ - For lyskomd 1.9.0 - - This document is a short description of how to administrate a LysKOM -database on your site. - - The first thing you will have to do is to follow the instructions in -the file INSTALL. This will set up the LysKOM system with a database -containing a few necessary conferences and one person - the -administrator. - - Once the LysKOM system is running, there is not much you will have -to do to keep it that way. One thing to remember is that the current -release of the server has an incomplete handling of garbage collection -of the database. The database is split into two files, the -information file and the text file. Newly written texts are -concatenated to the text file and old texts are never removed. The -information file contains information about conferences, users and -where in the text file the texts are. This file is properly garbage -collected, but not the text file. - - There is a program called dbck (Data Base Check) which is used to -check the consistency of the LysKOM database. This program can also -be used to shrink the text file. To do this, just type `dbck -g' in -the database directory, or give additional switches to dbck to use the -correct directory. See further the manual page for dbck. When dbck -is to be run on the database, the LysKOM server *must* be stopped, or -unrepairable damage may result. See below for a description on how to -stop the server. - - There is a program called updateLysKOM which is used to ensure -continuous operation. This program is run with certain intervals and -if the LysKOM server has died for some reason, updateLysKOM restarts -it. If the server is still running properly, updateLysKOM sends a -signal (SIGUSR1) to it, which causes the server to write some -statistics to a file named etc/lyskomd-log in the lyskom directory. - - Taking the server down cleanly can be done in two ways: through the -use of the LysKOM protocol on a socket, preferably through the use of -a suitable client, or by sending the signal SIGHUP to it. This will -cause the server to save the database and close all client -connections. It will also create a file named etc/memory-usage in -which the memory usage of the server is reported. - - To prevent updateLysKOM from restarting a server, create a file -named /usr/lyskom/etc/status. The file should contain a valid mail -address on the first line. UpdateLysKOM will not restart the server -as long as that file exists. In addition, if the file is between 1 -and 2 hours old an email will be sent to the mail address found in the -file. If the file is older than that, an error message will be -printed on stderr and updateLysKOM will exit with a non-zero exit -status. cron is expected to deliver the error message to an operator. - - The shell script komrunning can be used to start and stop the LysKOM -server. With no arguments, it will report the status. - - komrunning off - -will shut down the server, creating the file /usr/lyskom/etc/status, -while - - komrunning on - -will restart it. The actual stopping and starting of the server will -be done by updateLysKOM the next time it is run. komrunning only -creates the lock file. diff --git a/doc/Buggar.fixade b/doc/Buggar.fixade deleted file mode 100644 index 1f188cbd9..000000000 --- a/doc/Buggar.fixade +++ /dev/null @@ -1,506 +0,0 @@ - -1990-11-25 ceder@lysator.liu.se 000056 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: ----------------------------------------------------------------------- -Det b|r finnas n}got s{tta att st{nga av asynkrona meddelanden (t ex -n{r man k|r r}tt). ----------------------------------------------------------------------- - -1991-02-15 ceder@Lysator.LiU.SE 000070 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: -Orsak: ----------------------------------------------------------------------- -add_recipient med m}nga flera skickar ej ut n}got asynkront meddelande. ----------------------------------------------------------------------- - - - -1991-02-15 ceder@Lysator.LiU.SE 000069 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: -Orsak: ----------------------------------------------------------------------- -Det ska, genom att g|ra g|ra add_recipient, g} att {ndra en recpt till -cc_recpt (och inte bara }t andra h}llet). En mottagare ska, precis som -nu, inte f} vara b}de recpt och cc_recpt. ----------------------------------------------------------------------- - -1991-02-08 ceder@Lysator.LiU.SE 000068 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: -Orsak: ----------------------------------------------------------------------- -kom_info, som bl a inneh}ller motd_of_lyskom, sparas inte. N{r man -startar om servern {r all info gl|md. ----------------------------------------------------------------------- - -1991-12-16 ceder@Lysator.LiU.Se 000074 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: 0.34.3 -Orsak: Brist p} f|rutseende. ----------------------------------------------------------------------- -N{r en text skapas, som har mottagare som {r b}de hemliga och |ppna, -censureras inte listan av mottagare. ----------------------------------------------------------------------- - -1991-01-13 ceder@Lysator.LiU.SE 000066 ----------------------------------------------------------------------- -]tg{rdat av: ceder -Program: elisp-klient, servern -Till version: Servern 0.09 -Orsak: servern ger en lista tillbaka inneh}llande nollor ----------------------------------------------------------------------- -Om man f|rs|ker }terse raderade texter s} visas "Texten finns inte." -Det {r lite jobbigt om man t ex g|r "]terse alla av Pell Pell Pell". ----------------------------------------------------------------------- - - -1991-01-04 Bellman@Lysator.LiU.SE 000064 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: 0.08 - klart ----------------------------------------------------------------------- -Ett inl{gg kan kommentera ett annat flera g}nger. ----------------------------------------------------------------------- - - -1990-12-18 Bellman@Lysator.LiU.SE 000062 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: servern -Till version: 0.07 - klart ----------------------------------------------------------------------- -Add-recipient tycks alltid s{tta mottagaren som vanlig mottagare {ven -om man anger cc-recpt. ----------------------------------------------------------------------- - -1990-12-09 linus@Lysator.LiU.SE 000058 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: Elisp-klienten -Till version: 0.18.1 - klart -Orsak: LUNATIX ----------------------------------------------------------------------- -Nanny klarar inte av att skicka paket som {r l{ngre {n 2048 tecken. -Elisp-klienten borde inte skicka st|rre paket utan borde dela p} l}nga -texter. ----------------------------------------------------------------------- - - -1990-12-06 linus@lysator.liu.se 000057 ----------------------------------------------------------------------- -]tg{rdas av: linus@lysator.liu.se -Program: Elisp-klienten -Till version: 0.18 - fixat ----------------------------------------------------------------------- -Filterna lyskom-init-filter och lyskom-filter gl|mmer i vissa fall att -s{tta tillbaka current buffer. Detta resulterar i ganska m}nga -Buffer is read-only *nanny* -I synnerhet p} fr}gan {r detta f|rsta g}ngen du k|r lyskom (yes/no): ----------------------------------------------------------------------- - - -1990-11-20 ceder@lysator.liu.se 000054 ----------------------------------------------------------------------- -]tg{rdas av: Inge Wallin -Program: elisp-klienten -Till version: 0.18.1 ----------------------------------------------------------------------- -N{r man skriver en presentation av ett m|te markeras den inte (alltid) -som presentation av servern. ----------------------------------------------------------------------- - - -1990-11-14 linus@lysator.liu.se 000051 ----------------------------------------------------------------------- -]tg{rdas av: Ingen }tg{rd. Felaktig buggrapport. -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -N{r jag l{ser med djup-f|rst flaggan satt och har l{st ett inl{gg som -har kommentarer s} l{ggs dessa ol{sta kommentarer upp i en egen -to-read-info. -N{r jag nu g|r n{sta m|te eller g}r till n}got annat m|te (utan att ha -l{st slut dessa kommentarer) f|rsvinner denna to-read-info. - -Den borde flyttas med till lyskom-to-do-list s} att man kommer in i -samma kommentarkedja n{sta g}ng man kommer till m|tet. ----------------------------------------------------------------------- - - -1990-11-12 ceder@lysator.liu.se 000050 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: fixat /ceder ----------------------------------------------------------------------- -Text-garbningen tar inte h{nsyn till om inl{gg {r skickade "nyss". Om -dom {r tillr{ckligt gamla s} raderas de {nd}. Felet ligger i -garb_text() i text-garb.c. ----------------------------------------------------------------------- - - -1990-11-11 ceder@lysator.liu.se 000049 ----------------------------------------------------------------------- -]tg{rdas av: (Ingen }tg{rd. F|rdelen med ett m{nniskol{sbart format - {r stora, och dessutom tj{nar man inte s} mycket.) -Program: protokoll -Till version: B ----------------------------------------------------------------------- -Ca dubbelt s} mycket data |verf|rs via TCP som det man f}r ut ur -anv{ndarinterfacet. Protokoll B b|r nog anv{nda r}a bytes, och inte -skicka tal i ASCII. ----------------------------------------------------------------------- - - -1990-11-11 ceder@lysator.liu.se 000047 ----------------------------------------------------------------------- -]tg{rdas av: pen -Program: server -Till version: 0.07 - klart -Orsak: Blocking writes. ----------------------------------------------------------------------- -Servern h{nger sig i flera minuter ibland, utan k{nd orsak. Efter upp -till 10 minuter hoppar den ig}ng igen av sig sj{lv. ----------------------------------------------------------------------- - - -1990-11-04 ceder@lysator.liu.se 000042 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: elisp-klienten -Till version: 0.18.1 - klart ----------------------------------------------------------------------- -Det finns inget "endast"-kommando i elisp-klienten. ----------------------------------------------------------------------- - - -1990-10-28 ceder@lysator.liu.se 000040 ----------------------------------------------------------------------- -]tg{rdas av: linus@lysator.liu.se -Program: elisp-klienten -Till version: 0.12 ----------------------------------------------------------------------- -Subject: L{gga in en text. BUGFIX - -Jag k|r med -kom-write-texts-in-other-window t -och har retat mig p} att det alltid l{mnar 2 f|nster ({ven om jag bara -hade ett). - -N{r jag skulle fixa det m{rkte jag att det den gjorde egentligen var -ganska komplicerat och jag vill h{vda att min l|sning {r snyggare. -Jag har i koden i detta brev markerat var skillnaderna finns. -Kod utan markeringarna (och oindenterat) finns i -~linus/.el/lyskom-write.el. - -Dessa {r min tv} funktioner att ers{tta dem i lyskom.el: - - (defun lyskom-edit-text (proc misc-list subject &optional handler &rest data) - "Edit a text in a new buffer. - PROC is the associated process. - MISC-LIST is the default misc-list. - SUBJECT is subject (a string). - HANDLER is a function to call when the text has been created. - DATA is extra data to send to the function. HANDLER is called with - (apply HANDLER text-no DATA) - where text-no is the number of the text." - (setq lyskom-is-writing t) - (lyskom-end-of-command) - (let - ((buffer (generate-new-buffer - (concat (buffer-name (process-buffer proc)) "-edit"))) - (config (current-window-configuration))) - (cond - (kom-write-texts-in-other-window - (switch-to-buffer-other-window buffer)) - (t (switch-to-buffer buffer))) - (lyskom-edit-mode) - (setq lyskom-proc proc) - (make-local-variable 'lyskom-edit-handler) - (make-local-variable 'lyskom-edit-handler-data) -> (make-local-variable 'lyskom-edit-return-to-configuration) - (setq lyskom-edit-handler handler) - (setq lyskom-edit-handler-data data) -> (setq lyskom-edit-return-to-configuration config) - (lyskom-edit-insert-miscs misc-list subject) - (message "Tryck C-c C-c f|r att skicka in texten.")) - (set-buffer (process-buffer lyskom-proc))) - - (defun lyskom-create-text-handler (text-no edit-buffer) - "Handle an attempt to write a text." - (lyskom-tell-server "") - (cond - ((null text-no) - (lyskom-insert - (format "\nTexten kunde ej skapas. Felkod: %d.\n" lyskom-errno)) - (ding) - (message "Texten kunde ej skapas. Felkod: %d." lyskom-errno)) - (t - (lyskom-insert (format "\nText nummer %d skapad.\n" text-no)) - - ;; Immediately mark the text as read if kom-created-texts-are-read is set. - - (cond - (kom-created-texts-are-read - (lyskom-is-read text-no) - (initiate-get-text-stat 'background 'lyskom-mark-as-read - text-no) - (lyskom-run 'background 'set 'lyskom-dont-change-prompt nil))) - - - (set-buffer edit-buffer) ;Need local variables. - -> ;; Select the old configuration. - -> (set-window-configuration lyskom-edit-return-to-configuration) - - ;; Apply handler. - - (if lyskom-edit-handler - (let ((hnd lyskom-edit-handler) - (dta lyskom-edit-handler-data)) - (set-buffer (process-buffer lyskom-proc)) - (apply hnd text-no dta))) - (set-buffer (process-buffer lyskom-proc)) - - ;; Kill the edit-buffer. - - (kill-buffer edit-buffer))) - (lyskom-end-of-command)) ----------------------------------------------------------------------- - - -1990-10-25 mattias@lysator.liu.se 000036 ----------------------------------------------------------------------- -]tg{rdas av: ??? -Program: elispklienten och servern??? -Till version: ??? ----------------------------------------------------------------------- -Tomma texter fungerar inte s} bra. ----------------------------------------------------------------------- - - -1990-10-21 ceder@lysator.liu.se 000027 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: klart sedan l{nge ----------------------------------------------------------------------- -En person som {r raderad raderas inte helt. Man kan fortfarande skapa -texter med personen som mottagare. De f}r ett lokalt nummer i m|tet. -Suck. Allvarligt! ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000018 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: klart sedan l{nge ----------------------------------------------------------------------- -Det g}r inte att l{sa i kommentarsordning. "}k" {r inte generellt. ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000017 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: 6 - klart ----------------------------------------------------------------------- -Det g}r inte att markera texter. Det fattas kod i servern. ----------------------------------------------------------------------- - - -1990-10-20 ceder@lysator.liu.se 000016 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: 6 - klart ----------------------------------------------------------------------- -Gamla inl{gg raderas aldrig. B|r }tg{rdas snarast! ----------------------------------------------------------------------- - - -1990-10-20 ceder@lysator.liu.se 000015 ----------------------------------------------------------------------- -]tg{rdas av: linus?? -Program: server -Till version: ??? ----------------------------------------------------------------------- -Asynkrona meddelanden {r inte f{rdigimplementerat. ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000012 ----------------------------------------------------------------------- -]tg{rdas av: Linus -Program: elisp-klient -Till version: 0.16 - klart ----------------------------------------------------------------------- -Elisp-klienten borde skriva ut "Kommentar till text 289 av -<f|rfattare>". "Kommentar i text 435 av <f|rfattare>" borde skrivas -efter texten. ----------------------------------------------------------------------- - - -1990-10-20 ceder@lysator.liu.se 000011 ----------------------------------------------------------------------- -]tg{rdas av: Inge Wallin -Program: elisp-klient -Till version: ??? ----------------------------------------------------------------------- -Elisp-klienten borde skriva ut vilket kommando den h}ller p} att g|ra -s} fort man har startat det. ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000009 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: 0.04 - klart -Program: elisp-klient -Till version: 0.10 - klart -Program: libyskom.a -Till version: () - klart ----------------------------------------------------------------------- -who_is_on borde s{nda med en connection. ----------------------------------------------------------------------- - - -1990-10-20 ceder@lysator.liu.se 000008 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: 0.04 - klart -Program: elisp-klient -Till version: 0.10 - klart -Program: libyskom.a -Till version: () - klart -Program: tty-klient (}tg{rdas av Bellman) -Till version: ----------------------------------------------------------------------- -get_conf_stat och get_person_stat beh|ver inte flaggan 'mask' l{ngre. -Den b|r tas bort. ----------------------------------------------------------------------- - - - -1990-10-20 Bellman@Lysator.LiU.SE 000007 ----------------------------------------------------------------------- -]tg{rdas av: Bellman -Program: elisp-klient -Till version: 0.10 - klart ----------------------------------------------------------------------- -Elisp-klienten: N{r man h}ller p} att skriva en text, borde den -tycka att raden "--- Skriv texten nedanf|r denna rad ---" skiljer -tv} stycken }t. Denna str{ng b|r f | vara en variabel, inte en -magisk str{ng mitt inne i k{llkoden. ----------------------------------------------------------------------- - - -1990-10-20 Bellman@Lysator.LiU.SE 000006 ----------------------------------------------------------------------- -]tg{rdas av: Bellman -Program: elisp-klient -Till version: 0.10 - klart ----------------------------------------------------------------------- -Elisp-klienten: Implementera "personligt (svar)". Borde vara -ganska enkelt. ----------------------------------------------------------------------- - - -1990-10-20 Bellman@Lysator.LiU.SE 000005 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: elisp-klient -Till version: klart sedan l{nge ----------------------------------------------------------------------- -Elisp-klienten: f|r att ange att man vill kommentera ett annat -inl{gg {n det man nyss l{st, anger man inl{ggsnumret som argument -med C-u till k. Dvs n}got s}nt h{r: - (defun kom-write-comment (&optional arg) - (interactive "P") - (let ((text-to-comment (and arg lyskom-current-text))) - ...)) -eller vad variablerna nu heter. ----------------------------------------------------------------------- - - -1990-10-19 ingwa@isy.liu.se 000003 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: elisp-klient -Till version: 0.11 - klart ----------------------------------------------------------------------- -Elisp-klienten b|r byta prompt n{r man st}r och v{ntar, fr}n -"(Se) tiden" till "(G} till) n{sta m|te" ----------------------------------------------------------------------- - - -1990-10-19 Tommy Persson @ LysKOM 000002 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: elisp-klient -Till version: 0.10 - klart ----------------------------------------------------------------------- -703 1990-10-19 11:00 /20 rader/ Tommy Persson -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <41> -[rende: ]terse kommenterad --------------------------------------------------------- - -H{r kommer ett }terse kommenterat kommando: - -(defun kom-view-commented-text () - (interactive) - (let ((text-no nil)) - (save-excursion - (re-search-backward "/.*rader/" nil t) - (if (search-forward "Kommentar till text" nil t) - (setq text-no (read - (buffer-substring (point) - (save-excursion - (forward-word 1) - (point))))))) - (if text-no - (progn - (lyskom-start-of-command) - (lyskom-insert (format "]terse text nummer %d.\n" text-no)) - (lyskom-view-text text-no))))) - -(703) ----------------------------------------------------- ----------------------------------------------------------------------- - - -1990-10-18 Aronsson@Lysator.LiU.SE 000001 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: server -Till version: 0.04 - klart -Orsak: Aronsson var inloggad p} flera sessioner. N{r han - raderade sig sj{lv skulle han ha blivit utloggad fr}n - alla sessioner. ----------------------------------------------------------------------- -Jag k|rde r} telnet. Skrev kommandot 11 11 (delete-conf) 8 (Lars -Aronsson). Detta var i o.f.s. ett misstag, jag hade t{nkt g|ra 13 -(get-conf-stat). Men f|ljden blev att hela servern kraschade. ----------------------------------------------------------------------- diff --git a/doc/Bugrapporter b/doc/Bugrapporter deleted file mode 100644 index 960231c2e..000000000 --- a/doc/Bugrapporter +++ /dev/null @@ -1,740 +0,0 @@ -Filen inneh}ller bugrapporter, ideer och andra f|rslag till -f|rb{ttringar p} LysKOM och dess ing}ende program. L{gg nya buggar -f|rst i filen. En mall f|r en buggrapport kan s{ttas in med C-x g m. - - -1991-09-02 rjan@Lysator.LiU.Se 000073 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server, klienter -Till version: -Orsak: ----------------------------------------------------------------------- -L}t f|rfattaren av en text addera andras texter som fotn|tter. -ceder says: bra ide. ----------------------------------------------------------------------- - - -1991-03-03 ceder@lysator.liu.se 000072 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: -Orsak: ----------------------------------------------------------------------- -isc_getnextevent borde anv{nda ett write-set i select(). Som det {r nu -kan en klient f} v{nta 2 sekunder p} data. ----------------------------------------------------------------------- - -1991-02-28 Bellman@Lysator.LiU.Se 000071 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: -Orsak: ----------------------------------------------------------------------- -Version 0.28. Ibland f}r man prompten "L{sa n{sta text", trots att -man borde f}tt "G} till n{sta m|te" f|ljt av "L{sa n{sta text". ----------------------------------------------------------------------- - - -1991-02-05 linus@Lysator.LiU.SE 000067 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elispklienten och emacs 18.56 -Till version: -Orsak: ----------------------------------------------------------------------- -O{ndlig loop n}gonstans n{r filterfunktionerna anv{nds f}r Emacs 18.56 -att h{nga sig h}rt. (G}r ej att bryta med C-G utan forts{tter att k|ra -n{r jag svara jag p} fr}gan continuing? - -Jag har m{rkt det n{r -- Jag skapade ett nytt m|te (fick inte skriva presentation f|r den - h{ngde sig innan.) -- N{r jag skrev ett inl{gg och var i en annan buffert innan den fick - svar. ----------------------------------------------------------------------- - -1991-02-01 ceder@Lysator.LiU.SE 000066 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: -Orsak: ----------------------------------------------------------------------- -Det finns ingen gr{ns p} hur mycket man kan lagra i en utk| i -isc-rutinerna. ----------------------------------------------------------------------- - - -1991-01-10 Bellman@Lysator.LiU.SE 000065 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: ----------------------------------------------------------------------- -Info-strukturen b|r {ven inneh}lla hur l{nge servern varit uppe, och -annat sm}tt och gott som kan vara kul att veta. ----------------------------------------------------------------------- - - - -1991-01-03 ceder@Lysator.LiU.SE 000063 ----------------------------------------------------------------------- -]tg{rdas av: -Program: servern? speciell demon? -Till version: -Orsak: Kultv{rde. ----------------------------------------------------------------------- -Det kunde vara skoj att kunna g|ra "finger @lyskom.lysator.liu.se" och -f} n}got i stil med: - -@finger @lyskom.lysator.liu.se - - Wed 2-Jan-91 15:27:08 Up 718:34:00 - 3+2 Jobs Load av 0.20 0.07 0.00 - - No LysKOM administrator in attendance - - Job Line Activity User Where - 22 p1 Reading ceder LysKOM internals - 23 p2 Waiting noppe Inl{gg }t mig - 24 p3 Reading pell Hackers (@) Nanny - - 1 172 LDB OPERATOR - 2 173 KOMSTAT Statistikid f|r statistikinsamling - -(Pell Pell Pell kom med den exakta utformningen). ----------------------------------------------------------------------- - - -1990-12-13 Linus@Lysator.LiU.SE 000061 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klienten -Till version: -Orsak: Emacs g|r inte uppdatering av minibufferten efter - sit-for tiden n{r den skrivit i message-arean. ----------------------------------------------------------------------- -Asynkrona meddelanden skriver |ver minibufferten n{r man {r i den. -Borde kunna stoppas n{r man h}ller p} i den bufferten. ------- fotnot av ceder: ----- -Det {r kanske b{ttre att l}ta klienten l{sa i den vanliga bufferten i -st{llet f|r i minibufferten. Nackdelen {r att det kanske blir sv}rt -att fixa completion. ----------------------------------------------------------------------- - - -1990-12-13 Linus@Lysator.LiU.SE 000060 ----------------------------------------------------------------------- -]tg{rdas av: Inge Wallin, ISY -Program: elisp-klienten -Till version: 0.18.5 -Orsak: ] k {r en v{ldigt enkel funktion. ----------------------------------------------------------------------- -} k borde g|ra }terse det kommenterade, samt alla inl{gg som detta -inl{gg {r fotnot till. ----------------------------------------------------------------------- - -1990-12-10 ceder@lysator.liu.se 000059 ----------------------------------------------------------------------- -]tg{rdas av: -Program: alla -Till version: ----------------------------------------------------------------------- -Det borde finnas ett s{tt att markera en region av en text. ----------------------------------------------------------------------- - -1990-11-23 ceder@lysator.liu.se 000055 ----------------------------------------------------------------------- -]tg{rdas av: -Program: servern -Till version: ----------------------------------------------------------------------- -Det b|r finnas en gr{ns p} hur m}nga inl{gg man f}r markera som l{sta -i ett m|te, f|r att f|rhinda att n}gon f}r en alltf|r stor lista. -Denna bugg har l}g prioritet. --- -Fotnot (1991-01-24): N{r Inges paket f|r Numlist {r klart kommer det -h{r inte att spela n}gon roll. Denna bugg kr{ver ingen annan }tg{rd. ----------------------------------------------------------------------- - -1990-11-14 ceder@lysator.liu.se 000053 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: ----------------------------------------------------------------------- -Difftime anv{nds inte alltid n{r den borde anv{ndas. Det finns st{llen -d{r '-' anv{nds f|r att f} fram en diff i sekunder. ----------------------------------------------------------------------- - - -1990-11-14 ceder@lysator.liu.se 000052 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: ----------------------------------------------------------------------- -cached_get_garb_nice har ingenstans att h{mta garb_nice fr}n. Den -cacheas inte. I ramkomd {r det ju inget problem... ----------------------------------------------------------------------- - - -1990-11-11 ceder@lysator.liu.se 000048 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server eller elisp-klient -Till version: ----------------------------------------------------------------------- -N{r servern g}r ner kan det h{nda att man f}r l{sa om texter som man -har skrivit sj{lv under den sista sessionen. Det tyder p} en bugg - -sparas inte det ordentligt? Eller {r det klienten som g|r fel? Texten -markeras ju som l{st s} fort man skapar den. Eftersom texten har -hunnit sparas p} disk s} borde info om att man har l{st dom ocks} vara -sparat... ----------------------------------------------------------------------- - - -1990-11-11 pen@lysator.liu.se 000047 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-client -Till version: ----------------------------------------------------------------------- -Asyncrona meddelanden kan komma "f|r tidigt" och f|rst|ra. Om en text -skapas under inloggningssekvensen kan det h{nda att man f}r l{sa den -tv} g}nger. ----------------------------------------------------------------------- - - -1990-11-11 bellman@lysator.liu.se 000046 ----------------------------------------------------------------------- -]tg{rdas av: Linus Tolke Y -Program: elisp-client -Till version: 0.27 -Orsak: Macrot lyskom-traverse tilldelade elementet det - snurrade med. ----------------------------------------------------------------------- -Om 3 {r en fotnot till text 2 som {r en kommentar till text 1 s} f}r -man l{sa dom i ordning 1, 3, 2, fast det ju borde vara 1, 2, 3. ----------------------------------------------------------------------- - - - -1990-11-04 ceder@lysator.liu.se 000045 ----------------------------------------------------------------------- -]tg{rdas av: -Program: servern -Till version: ----------------------------------------------------------------------- -Servern censurerar inte de asyncrona meddelandena tillr{ckligt. Bl a -s} talar den om n{r man g}r till ett skyddat m|te. (tror jag) ----------------------------------------------------------------------- - - -1990-11-04 ceder@lysator.liu.se 000044 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klienten -Till version: ----------------------------------------------------------------------- -N{r man ska ange siffra i en minibuffert s} kommer den ibland till fel -buffert. Det finns {ven andra mystiska fel vad g{ller val av buffert. -Man f}r till exempel inte byta buffert n{r man h}ller p} att l{gga in -en text. ----------------------------------------------------------------------- - - -1990-11-04 ceder@lysator.liu.se 000043 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klienten -Till version: ----------------------------------------------------------------------- -Fel syntaxtabell n{r man skriver inl{gg. ---------- -Linus: Delvis avhj{lp av att man from version 0.12 kan v{lja vilken -mode som klienten anv{nder sig av innan den s{tter de speciella -lyskom-editflaggorna (lyskom-edit-mode-mode-hook). ----------------------------------------------------------------------- - - -1990-10-31 ceder@lysator.liu.se 000041 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klienten -Till version: ----------------------------------------------------------------------- -N{r man har skrivit en text byter klienten ut current buffert mot -LysKOM, och inte Lyskom-edit-bufferten. -kom-write-texts-in-other-window {r nil. ----------- -Sedan version 0.12 s} kommer bufferten ih}g vilken -`window-configuration' som g{llde innan man startade editeringen av -texten. ----------------------------------------------------------------------- - - -1990-10-28 ceder@lysator.liu.se 000039 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klienten -Till version: ----------------------------------------------------------------------- -Om man har kom-write-texts-in-other-window t s} kommer det inte n}gon -ny prompt n{r man skickar in texten. ----------------------------------------------------------------------- - - -1990-10-28 Aronsson@Lysator.LiU.SE 000038 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klienten -Till version: ----------------------------------------------------------------------- -1641 1990-10-28 01:14 /9 rader/ Lars Aronsson -Kommentar till text 1612 -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <105> -[rende: Version 0.11b --------------------------------------------------------- -En ide {r denna: S} l{nge allt g}r bra k|r man Remote Procedure Calls -mot servern: Man skickar en fr}ga och inv{ntar ett svar. Hela tiden -k|r man med ett och samma fr}ge-ID (det d{r f|rsta numret). Det kan -man g|ra eftersom man ju inv{ntar svaret innan man skickar n{sta -fr}ga. N{r sedan anv{ndaren trycker R, s} |kar man fr}ge-ID med ett -och l{gger sig i topp-loopen. Nu skickar man en ny fr}ga (med nya -fr}ge-ID och som resultat av ett nytt kommando). Om det uteblivna -svaret p} en gammal fr}ga (f|re R) dyker upp, s} har det fel fr}ge-ID -och man ignorerar det (men l{ser bort hela - man vet ju datatypen). -(1641) ----------------------------------------------------- ----------------------------------------------------------------------- - - - -1990-10-25 ceder@lysator.liu.se 000037 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klienten -Till version: ----------------------------------------------------------------------- -Det finns }tskilliga st{llen d{r det inte kontrolleras att man inte -f|rs|ker g|ra n}got med en *-stat som {r nil. ----------------------------------------------------------------------- - - -1990-10-22 pell@isy.liu.se 000035 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -1371 1990-10-23 20:50 /3 rader/ Pell Pell Pell -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <82> -[rende: V{nta --------------------------------------------------------- -N{r man ligger i V{nta- och har kom i en icke-visad buffert och det kommer -ett nytt inl{gg, s} s{tts point till n}gon slumpvis plats i bufferten s} -att man alltid f}r b|rja med M-> innan man kan l{sa det nya inl{gget... /PPP -(1371) ----------------------------------------------------- ----------------------------------------------------------------------- - - - -1990-10-22 linus@Lysator.LiU.SE 000034 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -1383 1990-10-23 23:03 /16 rader/ Linus Tolke Y -Mottagare: MUD (erfarenhetsutbyte) <2> -[rende: Mitt hack f|r att fixa s} att alla kan se vilket inl{gg jag kommenterar. --------------------------------------------------------- -(defun lyskom-write-comment (text-stat subject) - "Write a comment to the text associated with TEXT-STAT." - (lyskom-start-of-command) - (cond - ((null text-stat) - (lyskom-insert "Jag f|rst}r inte vilken text du vill kommentera.") - (lyskom-end-of-command)) - (t - (lyskom-tell-server - (concat "Skriver kommentar till inl{gg " - (text-stat->text-no text-stat) - ".")) - (lyskom-edit-text lyskom-proc - (lyskom-comment-recipients text-stat) - subject)))) - -(1383) ----------------------------------------------------- ----------------------------------------------------------------------- - - - -1990-10-22 Flera olika 000033 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Allm{nna funderingar -Till version: B ----------------------------------------------------------------------- -1385 1990-10-23 23:07 /21 rader/ Lars Aronsson -Kommentar till text 1369 -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <83> -[rende: Lagringsformat p} texter --------------------------------------------------------- -Ni har gjort en del antaganden "servern bryr sig inte om...", vilket -s{kert l}ter riktigt i era |ron. Visst skall det vara s}, visst skall -servern klara att lagra nulltecken och annat. Men det finns flera -niv}er i en server. Lite h|gre upp {n den rena lagringen kommer -tillhandah}llandet av tj{nsten att lagra meddelanden mellan m{nniskor. - -Det {r visserligen inte n|dv{ndigt att samma personer tillhandah}ller -tj{nsten som har skrivit programmet, om n}gon tar upp en LysKOM server -p} KTH f|r att |verf|ra bin{ra Commodore 64 program, s} -tillhandah}ller de ju en annan tj{nst {n den p} Laila LysKOM. Men jag -tror att det blir mest praktiskt om ni programmerare har hand {ven om -tj{nsten h{r p} Laila. - -[ven om deltagarna i Laila LysKOM har olika utrustning, s} m}ste ett -meddelande kunna n} alla och d} m}ste det finnas regler f|r hur det -lagrade skall tolkas. Som nu debatten om ISO 8859 (8 bitar) eller ISO -646 (7 bitar). Om jag vill skicka ett meddelande till andra m{niskor, -vill jag ju vara s{ker p} att det lagras s} att de kan l{sa det. Om -jag vill lagra bokstaven Q s} m}ste ni best{mma vad jag skall skicka. -Det enklaste s{ttet {r att h{nvisa till en standard. Det ligger b{st i -tiden (ni skriver ju i moderna ANSI-C) att d} v{lja ISO 8859-1. -(1385) ----------------------------------------------------- - -Kommentar till text 1369 -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <84> -Kommentar i text 1394 -Kommentar i text 1413 -[rende: Lagringsformat p} texter --------------------------------------------------------- -Man skulle kunna lagra in info-byte f|r varje text som talar om vilken -teckenupps{ttning texten {r skriven i. (0 = SW-ASCII, 1 = US-ASCII, -2 = ISO n}nting), som klienten sedan f}r med varje text. Eller? - -(1391) ----------------------------------------------------- - -1413 1990-10-24 01:55 /4 rader/ Lars Aronsson -Kommentar till text 1391 -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <86> -Kommentar i text 1414 -[rende: Lagringsformat p} texter --------------------------------------------------------- -Nej, pen, det {r f|r jobbigt. Klienten blir f|r stor. B{ttre att -"protokoll B" betyder 7-bit svensk ISO 646 och "protokoll A" betyder -8-bit ISO 8859-1, men att alla texter lagras i ISO 8859-1. -Men jag ser inget behov av att k|ra annat {n ISO 8859-1 rakt |ver. -(1413) ----------------------------------------------------- ----------------------------------------------------------------------- - - -1990-10-22 pell@isy.liu.se 000032 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -1232 1990-10-22 13:16 /3 rader/ Pell Pell Pell -Kommentar till text 1168 -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <72> -[rende: Avbrott: hur ska det fungera? --------------------------------------------------------- -H|gt nummer h|g prioritet! D} har jag fel prioritet p} alla mina m|ten... -Fast oftast orkade jag inte fundera p} det n{r jag fick fr}gan. Sn{lla -ceder, g|r defaultsvar till de b}da fr}gorna om prioritet och placering. /PPP -(1232) ----------------------------------------------------- ----------------------------------------------------------------------- - - - -1990-10-22 Mange Nilsson @ LysKOM 000031 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -1189 1990-10-22 09:24 /11 rader/ Mange Nilsson (hmd) -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <69> -[rende: Vad h{nder? --------------------------------------------------------- -Med j{mna mellanrum nu under morgonen s} har jag f}tt: - Symbol's function definition is void: nil -efter att jag l{st en text. N{r man sen trycker p} RETURN s} kommer: - lyskom-format-object: no support for object -Fixas visserligen snabbt med ett kom-recover, men n}t fel {r det... - -H-Maneg -(1189) ----------------------------------------------------- ----------------------------------------------------------------------- - - - -1990-10-22 Mattias@Lysator.LiU.SE 000030 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Elisp-klient -Till version: ----------------------------------------------------------------------- -1162 1990-10-22 02:55 /3 rader/ Mattias Olofsson -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <64> -Kommentar i text 1178 -[rende: Bug? --------------------------------------------------------- - Om man skickar en tom str{ng (0H r}tt) som text i ett inl{gg s} -skrivs 'Det finns ingen s}dan text.' ut p} {renderaden i -elispklienten. Ska det vara s}? /mo -(1162) ----------------------------------------------------- - -1178 1990-10-22 06:13 /2 rader/ Mattias Olofsson -Kommentar till text 1162 -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <68> -[rende: Bug? --------------------------------------------------------- - Dessutom markeras inte brevet som l{st, jag f}r l{sa det varje -g}ng jag startar elispklienten. /mo -(1178) ----------------------------------------------------- - -1314 1990-10-23 04:38 /2 rader/ Mattias Olofsson -Kommentar till text 1178 -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <75> -[rende: Bug? --------------------------------------------------------- - ...dessutom f}r jag l{sa det varje g}ng jag har g}tt med i ett nytt -m|te. /mo -(1314) ----------------------------------------------------- ----------------------------------------------------------------------- - - - -1990-10-22 ingwa@isy.liu.se 000029 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Elisp-klient -Till version: ----------------------------------------------------------------------- -1167 1990-10-22 03:59 /4 rader/ Inge Wallin -Mottagare: LysKOM Elisp-klient; buggar, nyheter och annat. <66> -[rende: Tr}kig sak --------------------------------------------------------- -Om man har haft en emacs stoppad l{nge med lyskom ig}ng s} f}r man -"text n skapad!" d{r olika n kan vara ganska m}nga. Klienten borde -inte skriva ut mer {n en "text n skapad!" n{r man v{ntar. - -(1167) ----------------------------------------------------- ----------------------------------------------------------------------- - - - -1990-10-21 Bellman@Lysator.LiU.SE 000028 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Elisp-klient -Till version: ----------------------------------------------------------------------- -Om man ger anger en text som inte finns till "k" eller "p", f}r -man till svar "Wrong type argument: cons, nil". Inte s} snyggt. ----------------------------------------------------------------------- - - - -1990-10-21 ceder@lysator.liu.se 000026 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -M|ten med h|g prioritet avbryter inte m|ten med l}g prioritet i elisp- -klienten. ----------------------------------------------------------------------- - - - -1990-10-21 ceder@lysator.liu.se 000025 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -Klienten h{mtar samma m|tesstatus flera g}nger i rad i bland. -L|sning: en lista som h}ller reda p} vilka conf-stats man fr}gat efter -utan att f} svar. Om den finns p} listan s} k|r man en (lyskom-run -'cache-get-conf-stat conf-no) i st{llet f|r att fr}ga servern. ----------------------------------------------------------------------- - - - -1990-10-21 ceder@lysator.liu.se 000024 ----------------------------------------------------------------------- -]tg{rdas av: ceder -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -Prefetchningen funkar inte s} bra ihop med kommentarl{sningen. Det g}r -att g|ra b{ttre. Conf-stat f|r f|rfattare o. dy. borde prefetchas. ----------------------------------------------------------------------- - - - -1990-10-20 Aronsson@Lysator.LiU.SE 000023 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Protokollspec (+alla program) -Till version: B ----------------------------------------------------------------------- -En del prylar i protokoll A g|r att det {r sv}rt att effektivt tolka -det som trillar in |ver linan. T.ex. kan man inte avg|ra om det {r en -INTEGER, en HOLLERITH eller en ARRAY som kommer utan att titta framf|r -sig. F|resl}s att HOLLERITH anges H4Htext samt att antal-element och -"{" byter plats f|r ARRAY. - -Typen BITSTRING borde kunna ers{ttas med en INTEGER d{r bitarna kodas -+1, +2, +4, +8, ... S} som den h{r get_xyz_stat-masken fungerade. -Nackdel: Sv}rare att handkoda bitstr{ngar, men skall vi vara s} -beroende av handkodning? - -Om jag med protokoll A vill veta vem som organiserar ett m|te, m}ste -jag best{lla hela get-conf-stat. Troligen har min klient en generell -rutin som mappar till protokollelementen och jag lagrar (l{s: -mallocerar) d{rf|r hela datastrukturen som kommer i svaret. Det kunde -vara beh{ndigt med fler, sm} funktioner som i princip returnerade ett -v{rde var. ----------------------------------------------------------------------- - - - -1990-10-20 Aronsson@Lysator.LiU.SE 000022 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Protokollspec (+alla program) -Till version: A++ ----------------------------------------------------------------------- -add-recipient-params: conference och type borde byta plats och d{rmed -bli en Misc-Info. ----------------------------------------------------------------------- - - - -1990-10-20 Aronsson@Lysator.LiU.SE 000021 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Protokollspec (+alla program) -Till version: A++ ----------------------------------------------------------------------- -Conf-List borde vara en ARRAY { Conf-No; Conf-Type }. Inte den hybrid -den {r idag. Se anm{rkning i protokollspecen. ----------------------------------------------------------------------- - - - -1990-10-20 Aronsson@Lysator.LiU.SE 000021 ----------------------------------------------------------------------- -]tg{rdas av: ----------------------------------------------------------------------- -Mattias Olofsson hj{lper mig korrigera specen av protokoll A. Han b|r -bli medlem i gruppen kom. ----------------------------------------------------------------------- - - - -1990-10-20 Aronsson@Lysator.LiU.SE 000020 ----------------------------------------------------------------------- -]tg{rdas av: -Program: Protokollspec (+alla program) -Till version: A++ ----------------------------------------------------------------------- -Bak}tkompatibilitet {r viktigt. Det finns redan en klient p} Chalmers -och en p} IDA, kanske en p} ISY. Att {ndra syntax p} protokoll A kan -skapa problem. B{ttre i s} fall att skapa nya funktioner (med h|gre -anropsnummer) som ers{tter de gamla och l}ta servern klara {ven de -gamla. T.ex. masken "255" skadar ju inte, den tar inte mycket plats. -Men om den {ndras och Johan Andersson Chalmers m}ste FTP:a en ny -klient, s} kanske han tr|ttnar helt. ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000019 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -Klienten fr}gar aldrig efter server-info. ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000014 ----------------------------------------------------------------------- -]tg{rdas av: -Program: server -Till version: ----------------------------------------------------------------------- -Fixa s{kerhetsbuggen vid read_texts et c. Det b|r vara s} att man inte -f}r veta mappningen s} ofta som nu. Vilka texter som {r l{sta b|r -ocks} vara mer hemligt. Ett nytt anrop, query_unread(), b|r inf|ras. -Resultatet {r antalet ol{sat brev och _kanske_ Local_text_no f|r det -h|gsta nummret. - -(Det var l{nge sen jag skrev det h{r, och jag minns inte riktigt vad -jag menar, men man borde nog titta p} det h{r s} sm}ningom). ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000013 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -Det borde finnas ett s{tt att uttr{da och om-prioritera sina m|ten. -Till exempel en ny mode i ett eget f|nster, typ dired. ----------------------------------------------------------------------- - - - -1990-10-20 ceder@lysator.liu.se 000010 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -Elisp-klienten borde inte scrolla s} mycket n{r man k|r fr}n en -l}ngsam terminal. ----------------------------------------------------------------------- - - - -1990-10-20 Bellman@Lysator.LiU.SE 000004 ----------------------------------------------------------------------- -]tg{rdas av: -Program: elisp-klient -Till version: ----------------------------------------------------------------------- -Kommano f|r att spara en text p} fil i elisp-klienten vore -l{mpligt. Om man ger ett numeriskt argument, ska man spara det -inl{gget, annars det senast visade. ----------------------------------------------------------------------- - - - - -Local Variables: -mode:swedish -eval:(auto-fill-mode 1) -eval:(set-register ?m "1991-03--- user@Lysator.LiU.Se 0000-- ----------------------------------------------------------------------- -]tg{rdas av: -Program: -Till version: -Orsak: ----------------------------------------------------------------------- ----------------------------------------------------------------------- -") -End: diff --git a/doc/IDEAS b/doc/IDEAS index 977ccc621..bc9f59d8f 100644 --- a/doc/IDEAS +++ b/doc/IDEAS @@ -1,3 +1,9 @@ +* Open Secret Conferences (mirar) + + It would be nice to be able to set permissions on a conference so + that it is considered open to all with write permissions and closed + or secret to all others. + * Better Text Garbing (nisse@lysator.liu.se) Keep texts that have comments newer than N days, where N is a diff --git a/doc/LOGG b/doc/LOGG deleted file mode 100644 index 7f181f3f4..000000000 --- a/doc/LOGG +++ /dev/null @@ -1,77 +0,0 @@ -Det SIST SKRIVNA hamnar F\RST I FILEN /Aronsson. - -Loggfil d{r man skriver vad man g|r. Det {r b{ttre att du skriver lite -{n inte alls (mest riktat till mig sj{lv...). /lw 900402 ----------------------------------------------------------------------- - -3 juni 1991 Aronsson - -Uppdaterat prot-A.txt och i denna inkluderat prot-A.bnf. Satt -prot-A.bnf till att vara en symbolisk l{nk till txt-filen. - - -14 oktober 1990 Aronsson was here - -Lagt hit nedanst}ende filer. Originalen beh}ller jag hemma hos mig. - prot-A.txt Spec protokoll A. Textdelen. Svensk font. - prot-A.bnf Spec protokoll A. Koddelen. Engelsk font. - version Hantering av {ndringsf|rslag och versioner. - -1990-04-17 /ceder - -Tog bort den felaktiga definitionen av typen Connection ur kom-types.h. Den -riktiga finns i server/server.h. - -Flyttade definitioner av Persons, Marks, String och Map till kom-types.h. - -B|rjade anv{nda M-X Add-change-log-entry i st{llet. - -900407 /lw - -Det h{r {r c. Allts} b|r active_connection vara en pekare! (har {ndrat) - -Flyttade smalloc ("s{ker" malloc) till cache.c. - -Nu sparar ldb.c {ven texts-f{ltet i person-structen... - - -1990-04-04 /ceder - -[ndrade i Person-structen: Tog bort created_texts. La till -first_text, last_text och texts (en lista med globala textnummer de globala -textnummer som personen har skapat.) - -active_connection (server.h) {r index i arrayen connections (connections.c). - -Skapade filen doc/security-levels.txt d{r det anges vad de olika priv-bitarna -inneb{r. - -900404 /lw - -[ndrade ldb:s felhantering. Nu finns den! Fortfarande inte speciellt -snygg, men n}got b{ttre {n tidigare. Returnerar intern felkod i -ldb_errno och filhandtag till felande filen i ldb_errfileno. - - - -1990-04-02 /ceder - -Fr}n och med nu anv{nder vi ISO-standard f|r datum. (:-) - -kom-types.h: Tog bort flags och lade till user_area i Person-structen. - -900402 /lw -Vi flyttade om filerna. Under ldb ligger nu i princip endast ldb.c och -ldb.h. Under client ligger de filer som {r specifika f|r klienten och -under server ligger de server-specifika filerna. doc-directoryt -inneh}ller dokumentationen f|r det vi h}ller p} med. - -Direkt under 2kom ligger f|r n{rvarande allt som {r gemensamt f|r -s}v{l klient som server. Det {r types.h och kom-types.h (varf|r {r det -uppdelat i tv} filer?) samt services.h som tidigare hette atomic.h. - -Jag har f|rresten tagit bort parametern connection som alla funktioner -i atomic.h hade. Fr}n klientens synvinkel finns inte den parametern -och det verkar f}nigt att ha den i servern. Om man har samma parameter -till samtliga funktioner tycker jag det {r ganska vettigt att i -st{llet anv{nda en global variabel. diff --git a/doc/Mailinglist b/doc/Mailinglist deleted file mode 100644 index b23018269..000000000 --- a/doc/Mailinglist +++ /dev/null @@ -1,13 +0,0 @@ -uda@ida.liu.se -anders@lage.lysator.liu.se -tpe@ida.liu.se -kjell@saturn.ucsc.edu -jsk@lysator.liu.se -pell@lysator.liu.se -rolff@komunity.se -nixon@lysator.liu.se -riw@lysator.liu.se -magnus_k@lysator.liu.se -SLARTIBARTFAST@eLinor.lysator.liu.se -ingwa@isy.liu.se -Per_Cederqvist@f114.n204.z2.pclink.se diff --git a/doc/Makefile.am b/doc/Makefile.am index 2f0598294..474c3050a 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.12 1999/04/28 22:05:31 ceder Exp $ +# $Id: Makefile.am,v 1.13 1999/05/21 11:31:50 byers Exp $ # Copyright (C) 1998 Lysator Academic Computer Association. # # This file is part of the LysKOM server. @@ -24,25 +24,13 @@ SUBDIRS = man -info_TEXINFOS = Protocol-A.texi lyskomd.texi dbck.texi lyskomdb.texi \ - hacking.texi +info_TEXINFOS = Protocol-A.texi lyskomd.texi EXTRA_DIST = ADMINISTRATION misc_items \ - server-async.extend server.extend what-is-unread.swe \ - server-config.extend .cvsignore \ - Buggar.fixade \ - Bugrapporter \ - LOGG \ + .cvsignore \ IDEAS \ - aux-info.doc \ - clients.assigned \ cmsltt12.mf \ - dbck.latexinfo \ - disc-cache.spec \ - local-to-global.doc \ - lyskomd-database-format \ - prot-A-english.txt \ - security-levels.txt + local-to-global.doc # Automake tries to generate this rule automatically, but it fails # because of the capital letters in the file name of the source file. diff --git a/doc/Protocol-A.texi b/doc/Protocol-A.texi index c9b9eb271..ae49c3620 100644 --- a/doc/Protocol-A.texi +++ b/doc/Protocol-A.texi @@ -2,7 +2,7 @@ @c @c FIXME: Explain how the garb works with nice and keep-commented @c -@c $Id: Protocol-A.texi,v 1.64 1999/05/18 13:06:18 byers Exp $ +@c $Id: Protocol-A.texi,v 1.65 1999/05/21 11:31:51 byers Exp $ @c %**start of header @setfilename protocol-a.info @settitle LysKOM Protocol A @@ -5985,6 +5985,19 @@ information sent in this call is made available to other sessions through the @pxref{get-client-name} and @pxref{get-client-version} calls. This call should be used exactly once per session. +The following names are currently reserved for clients: + +@multitable @columnfractions .3 .7 +@item elisp-client @tab The famous CPU hog. +@item nilkom @tab C++ experiment +@item tkom @tab C++ experiment +@item getmail @tab Postmaster +@item ttykom @tab The one and second tty client by Linus +@item WinKOM @tab Windows client +@item JySKom @tab JSK Web Client +@end multitable + + @example 1 56 @t{=1 7} diff --git a/doc/README b/doc/README deleted file mode 100644 index f761ca78a..000000000 --- a/doc/README +++ /dev/null @@ -1,79 +0,0 @@ -Detta directory inneh}ller dokumentation om lyskom-projektet - -All utveckling av filer i detta bibliotek g|rs p} LLL. [ndra inga -filer p} Nanny. Kopiera filerna till Nanny med hj{lp av rdist. - -OBS!! Om ni l{gger till en ny dokumentationsfil, tar bort n}gon eller - kombinerar tv} eller flera, {ndra d} {ven i den h{r filen!! - - -F|ljande dokumentation finns i detta directory (30 april 1991): - -LOGG En loggfil som beskriver aktiviteten under tidiga delar av - projektet. Mest av nostalgiskt intresse och n{r vi n}gon g}ng - skall dokumentera hur vi gjorde't. - -README Denna fil. - -dbck.latexinfo - Beskriver dbck, programmet som kontrollerar och kompakterar en - lyskom-databas. - -elisp-client.internals - Beskriver ing}ende hur elispklienten fungerar internt. L}ngt - ifr}n klar. - -elisp-client.user-manual - Beskriver alla aspekter av hur man anv{nder elispklienten. - -fileformat - Beskriver filformatet f|r lyskom-databasen. Inaktuell sedan - l{nge. Den h{r filen beh|ver skrivas om. - -ideer/ Directory som inneh}ller filer med ideer om framtida finesser. - Endast dokumentation om saker som faktiskt {r implementerade - f}r placeras direkt under 2kom/doc. Ideer skall l{ggas i det - h{r directoryt. - -mall-swe.latexinfo - H{r {r en mall som kan anv{ndas f|r alla latexinfo-filer - skrivna p} svenska. - -mall.latexinfo - Samma som ovan, fast p} engelska. - -misc_items - Beskriver vad som kan ing} i en lista av misc-info - (i servern?). - -mux.proto - Beskriver protokollet mux <-> server. - -prot-A.bnf - Aronssons ov{rderliga dokument som inneh}ller en formell - beskrivning av protokoll A. - -prot-A.slightly-obsolete - Beskriver bl.a uppkopplingsf|rfarande och liknande. - -prot-A.txt - Beskriver datatyper och liknande i protokollet. - -Fotnot: De tre ovanst}ende filerna borde kunna kombineras till en och - speciellt s} borde de g|ras aktuella. - -security-levels.txt - Beskriver vad olika privilegiebitar betyder i protokoll A, dvs - semantiken. Ingen syntax beskrivs h{r. - -server-async.extend - Beskriver hur man l{gger till ett nytt asynkront meddelande i - servern. - -server.extend - Beskriver hur man l{gger till ett nytt anrop i servern (och i - protokoll A). - -skeleton.doc - En mall som kan anv{ndas f|r att skriva en ny dokumentation i - vanligt textformat. diff --git a/doc/aux-info.doc b/doc/aux-info.doc deleted file mode 100644 index 3bb003aba..000000000 --- a/doc/aux-info.doc +++ /dev/null @@ -1,82 +0,0 @@ -1. Adding new predefined aux items - -New items are added to the file run-support/aux-items.conf, unless -they need to be compiled into the server, in which case they need to -be added to compiled_aux_item_definitions in src/server/aux-items.c - -Remember to document all predefined aux items in doc/Protocol-A.texi. - - - -2. aux-items.conf - -Each entry in this file has the following format: - - tag : name ( target, target, ... ) - { - field = value; - field = value; - ... - } - -Tag is an integer, the aux-item's tag. The last definition of a tag -overrides all previous definitions of that tag. Each target is one of -`server', `text', `conference', `letterbox' or `any�, and defines -which kind of object the item can be attached to. If `server' is -listed, items with this tag can be attached to the server -information. If `text' is listed, items with this tag can be attached -to texts; if `conference' is listed, they can be attached to -conferences that are not letterboxes; if `letterbox' is listed, but -`conference' is not, they can be attached to letterbox -conferences. The special target `any' specifies that the item can be -attached to any kind of object in the database (it is equivalent to -`server,conference,text,letterbox'.) Field is an identifier (see -below). Value is a boolean constant (`true', `false', `yes', `no', -`on' or `off'); an integer; or a string enclosed in double quotes -(C-style escapes are probably supported.) Some items have trillian -values. They can be set to boolean values in the file, but the default -is some other value. - - -The following fields can be assigned to: - -author-only Boolean, default false. When true, only the author - of a text or supervisor of a conference can create - items with this tag. - -supervisor-only Boolean, default false. When true, only the - supervisors of the author or letterbox can create - items with this tag. In all likelihood, the - implementation of this flag is screwed up. - -permanent Boolean, default false. When true, items with this - tag cannot be deleted once they have been created. - -unique Boolean, default false. When true, there can only - be one non-deleted item with this tag per creator. - -inherit-limit Integer, default 0. The maximum number of times - items with this tag can be inherited, plus one. - Zero means an unlimited number of times, one means - no times, 2 means once and so forth. This number - overrides the inherit-limit set by the client only - if that number is higher than this one. - -inherit Trillian. When set, the inherit bit on new items - with this tag is forced to the specified value. - -secret Trillian. When set, the secret bit on new items - with this tag is forced to the specified value. - -hide-creator Trillian. When set, the hide-creator bit on new - items with this tag is forced to the specified - value. - -dont-garb Trillian. When set, the dont-garb bit on new - items will be forced to the specified value. - -validate String, default none. When set, this specifies a - regexp that must match the data field in newly - created items with this tag. If the regexp fails - to match, then the item will not be created. - diff --git a/doc/clients.assigned b/doc/clients.assigned deleted file mode 100644 index 57ddb478f..000000000 --- a/doc/clients.assigned +++ /dev/null @@ -1,7 +0,0 @@ -The following names are currently reserved for clients: - -elisp-client The famous CPU hog. -nilkom C++ experiment -tkom C++ experiment -getmail Postmaster -ttykom The one and second tty client by Linus diff --git a/doc/dbck.latexinfo b/doc/dbck.latexinfo deleted file mode 100644 index b0bdca1d9..000000000 --- a/doc/dbck.latexinfo +++ /dev/null @@ -1,121 +0,0 @@ -\documentstyle[12pt,latexinfo,lyskom]{report} \c -*-latexinfo-*- - -\c $Id: dbck.latexinfo,v 0.4 1994/04/05 07:51:09 ceder Exp $ -\c Copyright (C) 1990, 1991, 1992 Lysator Academic Computer Association. -\c -\c This file is part of the LysKOM server. -\c -\c LysKOM is free software; you can redistribute it and/or modify it -\c under the terms of the GNU General Public License as published by -\c the Free Software Foundation; either version 1, or (at your option) -\c any later version. -\c -\c LysKOM is distributed in the hope that it will be useful, but WITHOUT -\c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -\c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -\c for more details. -\c -\c You should have received a copy of the GNU General Public License -\c along with LysKOM; see the file COPYING. If not, write to -\c Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN, -\c or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, -\c MA 02139, USA. -\c -\c Please mail bug reports to bug-lyskom@lysator.liu.se. - -\pagestyle{empty} - -\begin{document} - -\title{dbck --- Automatic LysKOM Database Integrity Check Program\\} -\sp{5} -\author{Per Cederqvist\\ - Lysator\\ - ceder@lysator.liu.se} -\sp{1} -\date{\today} - -\maketitle -\clearpage -\vspace{0pt plus 1filll} -Copyright \copyright{} 1990, 1991, 1992 Lysator - -\sp{2} - -This document describes dbck, a program that automatically checks for -and repairs inconsistencies in the LysKOM data base. - -\sp{6} -Permission is granted to copy and distribute this manual, provided that -the above Copyright notice and this text remains on all copies. - -\clearpage -\pagestyle{headings} -\pagenumbering{roman} - - -\tableofcontents - -\clearpage -\pagenumbering{arabic} - -\setfilename{dbck.info} - -\begin{ifinfo} -Copyright \copyright 1990, 1991, 1992 Lysator -\end{ifinfo} - -\node Top, Invoking dbck, , (top) -\comment node-name, next, previous, up - -Dbck is a data base checker that is used to assure that the -data base of LysKOM isn't corrupted. It is also used to -gather some statistics and to compact the database. - -\begin{menu} -* Invoking dbck:: Options et c. -* Tests:: A complete list of all tests that dbck performs. -\end{menu} - -\node Invoking dbck, Tests, ,Top -\comment node-name, next, previous, up - - -\chapter{Invoking dbck} - -Dbck accepts several switches. If no switches are given -dbck will read the file and report any errors found, but it -wont repair them. This behaviour is useful to check for -errors without having to take down the server. You must -take down the server to be able to repair any errors. -\begin{description} - -\item[-D\var{dir}]Tell dbck to look for the data base is in -the directory \file{\var{dir}/db} instead of the default -\file{/usr/lyskom/db}. - -\item[-i]Interactive use. If an error is found, and dbck -thinks that it can repair it, dbck will display a message -describing what error it has found, and how it intend to -fix it. The Operator can type \kbd{y} if he accepts the -action, och \kbd{n} if not. Note that some errors will be -repaired in a way that gives information loss --- but -always as little as possible. - -\item[-r]Repair simple errors without confirmation. - -\item[-v]Verbose mode. -Normally only errors are displayed. If you give the -\code{-v} flag some more statistic, such as number of -texts, average lengths of texts, and so on, will be -printed. - -\item[-d]Debug mode. -Hardly useful unless you are debugging lacgen. - -\item[-g]Garbage collect. Compact the file -\samp{db/lyskom-texts} by removing all unused text. -\end{description} -\clearpage -\chapter{Tests} -\end{document} diff --git a/doc/dbck.texi b/doc/dbck.texi deleted file mode 100644 index a14e587c2..000000000 --- a/doc/dbck.texi +++ /dev/null @@ -1,309 +0,0 @@ -\input texinfo -@c $Id: dbck.texi,v 1.2 1999/04/03 15:33:42 ceder Exp $ -@c %**start of header -@setfilename dbck.info -@settitle "dbck Reference Manual" -@setchapternewpage odd -@c %**end of header - -@ifinfo -This is the reference manual for the lyskomd LysKOM server version 2.0 - -Copyright @copyright{} 1999 Lysator ACS. - -Permission is granted to make and distribute verbatim copies of this -specification provided the copyright notice and this permission notice -are preserved on all copies. -@end ifinfo - -@dircategory LysKOM -@direntry -* dbck: (dbck). dbck reference manual. -@end direntry - -@titlepage -@sp 10 -@title "dbck Reference Manual" -@sp 2 -@subtitle "Server version 2.0" -@sp 2 -@author by the lyskomd developers - -@page -@vskip 0pt plus 1filll -Copyright @copyright{} 1995-1999 Lysator ACS - -Permission is granted to make and distribute verbatim copies of this document -provided the copyright notice and this permission notice are preserved on all -copies. - -Modified versions of this document may be redistributed with the added -condition that all modifications not cleared with the LysKOM development group -are clearly marked and that the entire modified work be redistributed under the -same conditions as the original. - -Permission is granted to copy and distribute translations of this manual into -another language under the same conditions as for modified versions. - -@end titlepage - -@ifinfo -@node Top, Copying, (dir), (dir) -@comment node-name, next, previous, up -@top dbck - -dbck is a program that can is used for minor database maintenance tasks -and for repairing a corrupt lyskomd database. - -@menu -* Copying:: LysKOM is free software. -* Overview:: Overview of dbck. -* Invoking dbck:: How to run dbck. -* Notes:: Notes about running dbck. -* Files:: Files used by dbck. -* Bugs:: Known bugs. -@end menu - -@end ifinfo - -@node Copying, Overview, Top, Top -@comment node-name, next, previous, up -@chapter Copying - -dbck is part of the lyskomd distribution. - -lyskomd is free software. It is distributed under the Gnu General Public -License version 2. The file COPYING in the top level of the distribution -contains the text of the license. - - -@node Overview, Invoking dbck, Copying, Top -@comment node-name, next, previous, up -@chapter Overview - -The dbck program is used for minor maintenance of the LysKOM database -and for repairing corrupt databases. In brief it performs the following -functions: - -@itemize @bullet -@item Compact the text file to remove deleted texts. -@item Repair inconsistent membership information. -@item Repair invalid recipients -@item Repair inconsistent comment links -@item Correct invalid local text numbers -@item Correct invalid text maps -@item Set special conferences -@item Convert between database formats -@end itemize - - -@node Invoking dbck, Notes, Overview, Top -@comment node-name, next, previous, up -@chapter Invoking dbck - -The functionality of dbck is controlled through command-line switches. -These are documented below. - -If @code{dbck} is invoked without any options it will read the database -and report on its integrity. No files will be modified. - -@menu -* General Options:: Controlling the overall behavior of dbck. -* Database Repair Options:: Repairing errors in the LysKOM database. -* Format Conversion Options:: Converting the database file to a new format. -* Database Maintenance Options:: Options for database maintenance. -* Reporting Options:: Options controlling status reports. -@end menu - - -@node General Options, Database Repair Options, Invoking dbck, Invoking dbck -@comment node-name, next, previous, up -@section General Options - -These options control the general behavior of lyskomd. - -@table @asis -@item @code{-h} or @code{--help} -Give a usage message (which includes the version number and the -compiled-in default location of the config file) and exit immediately. - -@item @code{-v} or @code{--verbose} -Verbose mode. Report not only errors but the status of the database. - -@item @code{-F} or @code{--force-output} -This option forces dbck to write the database file. Normally @code{dbck} -will only write a new database file if changes have been made for some -other reason. If you want to simply convert a database from one version -to another, you will probably have to give this option. -@end table - - -@node Database Repair Options, Format Conversion Options, General Options, Invoking dbck -@comment node-name, next, previous, up -@section Database Repair Options - -The following options control database repair. - -@table @asis -@item @code{-i} or @code{--interactive} -Run interactively. If any inconsistency is found, a remedial cure will -be suggested and the user must confirm the correction. - -@item @code{-r} or @code{--auto-repair} -Repair simple errors without asking. - -@item @code{-c} or @code{--set-change-name} -Consider it an error if the @code{change-name} capability of a person is -not set. Due to a bug that capability was never set for newly created -persons in release 1.6.1 of lyskomd. This option can be used to repair -the damage. -@end table - - -@node Format Conversion Options, Database Maintenance Options, Database Repair Options, Invoking dbck -@comment node-name, next, previous, up -@section Format Conversion Options - -dbck can be used to conver the LysKOM database from one storage format -to another. This is necessary only when moving the database to a new -server version. - -@table @asis -@item @code{-F} or @code{--force-output} -This option forces dbck to write the database file. Normally @code{dbck} -will only write a new database file if changes have been made for some -other reason. If you want to simply convert a database from one version -to another, you will probably have to give this option. - -@item @code{-o} or @code{--output-version} -This option is used to set the output version of the database. This -option will normally be used in conjunction with the @code{-F} option. - -Version 1.9 of @code{lyskomd} requires database version 1; version 2.0 -requires database version 2. Versions of @code{lyskomd} prior to 1.9 -requires database version 0. Note that information is irrevocably lost -when converting from a higher to a lower database version. This options -requires an argument: the output format version. -@end table - - -@node Database Maintenance Options, Reporting Options, Format Conversion Options, Invoking dbck -@comment node-name, next, previous, up -@section Database Update Options - -dbck can be used to update certain aspects of the database that either -were impossible to update in early versions of protocol A or that are -inconvenient in all protocol versions. - -@table @asis -@item @code{-g} or @code{--compact-text-mass} -Do garbage collection on the texts part of the database. This removes -all unreferenced texts from the database. - -@item @code{-P} or @code{--clear-password} -Clear the password of a specified user. This option is silently ignored -if the user does not exist. This option requires an argument: the ID of -the person whose password is to be cleared. - -@item @code{-G} or @code{--grant-all} -Grant all privileges to the specified user. This option is silently -ignored if the user does not exist. This option requires an argument: -the ID of the person who is to be granted all privileges. - -@item @code{--pers-pres-conf} -Set the person presentation conference of the server to the specified -conference. Since version 1.9 of lyskomd the @code{set-info} call can be -used to do this. - -@item @code{--conf-pres-conf} -Set the conference presentation conference of the server to the specified -conference. Since version 1.9 of lyskomd the @code{set-info} call can be -used to do this. - -@item @code{--motd-conf} -Set the message-of-the-day conference of the server to the specified -conference. Since version 1.9 of lyskomd the @code{set-info} call can be -used to do this. - -@item @code{--kom-news-conf} -Set the news-about-lyskom conference of the server to the specified -conference. Since version 1.9 of lyskomd the @code{set-info} call can be -used to do this. - -@item @code{--motd-of-kom} -Set the message of the day of the server to the specified text. Since -version 1.9 of lyskomd the @code{set-info} call can be used to do this. -@end table - - -@node Reporting Options, , Database Maintenance Options, Invoking dbck -@comment node-name, next, previous, up -@section Reporting Options - -These options control reporting of information about the database. - -@table @asis -@item @code{-s} or @code{--print-statistics} -Gather statistics about the lengths of texts. A table containing the -frequence of all lengths that are currently present is printed. - -@item @code{-t} or @code{--list-text-no} -Print ``Checking @i{text-no}'' for every text that examined. -@b{Warning:} This produces lots of output. -@end table - - -@node Notes, Files, Invoking dbck, Top -@comment node-name, next, previous, up -@chapter Notes - -The messages ``Conference @var{conf-no} has a bad Text-list. Starts with -0'' and ``Person @var{pers-no} has created @var{num} conferences, not -@var{num} (as said in person-stat).'' are normal. If you get them when -you specify the @code{-g} option, let @code{dbck} repair them and run -@code{dbck -g} again. - - -@node Files, Bugs, Notes, Top -@comment node-name, next, previous, up -@chapter Files Used by dbck - -dbck uses the same files as @code{lyskomd} (@xref{(lyskomd)}.) - -All file names can be changed in the server configuration file. -@xref{(lyskomd)Parameters}. - -@table @file -@item /usr/lyskom -Default value of @code{Prefix}. The default of this value is set at compile -time, but it can be changed in the server configuration file. -@xref{(lyskomd)Parameters}. - -@item @code{Prefix}/db/lyskomd-data -Half of the database: all status information. - -@item @code{Prefix}/db/lyskomd-texts -The other half of the database: the actual texts. - -@item @code{Prefix}/db/lyskomd-backup -A backup copy of @code{lyskomd-data}. Never, ever delete this file -unless you know what you are doing, or you may lose the entire data -base. Most of the time this is the only complete database file! - -@end table - - -@node Bugs, , Files, Top -@comment node-name, next, previous, up -@chapter Known Bugs - -@itemize @bullet -@item Does not lock the database. -@item Never checks if the database is locked. -@item Should have an unlock database option. -@item Does not check that the data file and text file are consistent. -@end itemize - - -@contents -@bye diff --git a/doc/disc-cache.spec b/doc/disc-cache.spec deleted file mode 100644 index 1bdd16e47..000000000 --- a/doc/disc-cache.spec +++ /dev/null @@ -1,174 +0,0 @@ -ramkomd {r d|d! L{nge leve LysKOM! - -Jag har tillsammans med Inge kommit p} ett s{tt att dels f} ner -v{ntetiden i samband med syncningar till <1 sekund, dels f} ner -storleken p} serverprocessen till mer rimliga niv}er. Denna l|sning -lider dock av det stora problemet att den kr{ver dubbelt s} mycket -diskutrymme som den egentligen beh|ver. Det g|r {ven ramkomd, s} det -{r ingen f|rs{mring i det avseendet. Dock {r detta bara en tempor{r -l|sning i v{ntan p} ldb. - -Varf|r spara allt p} en g}ng? Varf|r inte spara en liten del av filen -i taget, och utf|ra n}gra atomiska anrop mellan varje liten -delsynkning? Ungef{r s} t{nkte jag n{r jag kom p} f|ljande schema f|r -hur man kan g|ra det hela b{ttre {n det {r nu. - -Den databas som ligger p} fil {r en |gonblickbild (snapshot) av det -som finns i LysKOM. S} {r det i ramkomd; s} blir det i diskomd. -(B{ttre namn, n}gon? lyskomd tycker jag {r reserverat f|r den version -som har en riktig cache&ldb.) I ramkomd skrivs allt ut p} disk -samtidigt. I diskomd minns man bara vad som skall sparas, och sparar -bara en bit i taget. - -I ramkomd finns allt inne i ram-minnet (i teorin. I praktiken {r det -mesta utswappat - n}got som m{rks varje g}ng det {r dags att synca!). -I diskomd ligger det mesta p} disk. I minnet finns dels det som har -anv{nts nyligen, dels det som {r {ndrat och {nnu ej syncat. Diskomd -har alltid minst en, ofta tv}, databasfiler |ppna: - - Fil A Senaste kompletta fil. - Fil B Fil under uppbyggnad. - -(Dessutom textmassefilen, precis som ramkomd nuf|rtiden.) - -S} till detaljerna: - -Det finns tre typer av objekt som ber|rs av den h{r {ndringen: -Text_stat, Person och Conference. Jag anv{nder Person som ett exempel -nedan. - -I ram-cache.c finns en array - - Person *pers_arr[ MAX_CONF ]; - -Den byts mot - - Cache_node *pers_arr[ MAX_CONF ]; - -typedef struct cache_node { - Bool exists; - Bool exists_b; - Bool dirty; /* [r *ptr modifierad? */ - void *snap_shot; - void *ptr; - off_t pos; - off_t pos_b; - struct cache_node *lru_link; - int lock_cnt; -} Cache_node; - - - -UPPSTART - -N{r servern startas scannar den igenom datafilen (fil A) och fyller i -f{ltet exists till TRUE/FALSE och pos till att peka p} b|rjan av det -st{lle i filen d{r data ligger. \vriga f{lt s{tts till FALSE/NULL/0. - - - -CACHE_GET_PERSON - -N{r ovanliggande rutiner vill l{sa en person h{nder f|ljande: - -!exists Returnera NULL -ptr != NULL L{gg noden f|rst i lru_link. Returnera ptr. -snap_shot != NULL Kopiera snap_shot till ptr. L{gg noden f|rst i - lru_link. Returnera ptr. -annars L{s in fr}n fil A, s{tt ptr till den inl{sta - structen, l{gg noden f|rst i lru_link, - returnera ptr. - - -MARK_PERSON_AS_CHANGED - -N{r n}got har {ndrats s{tts dirty-flaggan till TRUE. - - -CREATE_PERSON - -S{tt exists=TRUE, dirty=TRUE, ptr och lru. - - -DELETE_PERSON - -S{tt exists=FALSE. ptr=NULL. Troligtvis error om lock_cnt != 0. - - - -THROW-OUT - -F|r att inte diskomd ska bli f|r stor sl{ngs saker ut ur cachen. -Algoritm: tag f|rsta elementet i lru_list. Om dirty==FALSE och -ptr!=NULL och lock_cnt==0 s} frig|r ptr. Upprepa tills antalet noder -med ptr!=NULL och dirty==FALSE {r mindre {n antalet "rena" element man -vill ha inne i minnet. (Smutsiga element sl{ngs aldrig ut.) - - -LOCK_PERSON - -\ka lock_cnt. - - -UNLOCK_PERSON - -Minska lock_cnt. - - -PRE-SYNC - -Utsparningen till fil sker i tre steg. F|rst sveper man |ver alla -Cache_noder. F|r alla som har dirty=TRUE g|r man f|ljande: - - if ( lock_cnt == 0 ) { - snap_shot = ptr; (Pekartilldelning, ej kopiering av inneh}llet.) - ptr = NULL; - Ta bort ptr ur lru-kedjan. - } else { - snap_shot = copy(ptr); - } - - dirty = FALSE; - -F|r _alla_ noder g|rs dessutom f|ljande: - - b_exists==exists; - - -SYNC - -Steg tv} utf|rs en liten bit i taget. Till exempel s} skulle man kunna -spara en person efter varje atomiskt anrop, eller s}. - -b_exists==FALSE? S{tt pos_b. Skriv "@\n" till fil B. -[r snap_shot != NULL? S{tt pos_b. Skriv ut inneh}llet i snap_shot - till fil B. -dirty==FALSE && ptr!=NULL Skriv ut inneh}llet i ptr till fil B. -annars: Kopiera fr}n fil A till fil B. (Eftersom man - vet b}de var blocket b|rjar och slutar kan man - kopiera blocket utan att bry sig om vad som - st}r i det -> v{ldigt lite CPU g}r }t). - - - - -POST-SYNC - -N{r alla Person:er har hanterats som i SYNC ovan {r det dags f|r det -tredje steget. D} g}r man igenom alla Cache_node:er och g|r f|ljande: - - pos = pos_b; - file_b = FALSE; - free(snap_shot); - snap_shot = NULL; - -Fil B som man f|rut hade |ppen f|r skrivning |ppnar man i st{llet f|r -l{sning som fil A. - - - - -ANM[RKNINGAR - -Inneh}llet i snap_shot {r alltid "smutsigt" j{mf|rt med inneh}llet i -fil A. Det som snap_shot pekar p} finns aldrig med i lru-kedjan. diff --git a/doc/hacking.texi b/doc/hacking.texi deleted file mode 100644 index 39a73272a..000000000 --- a/doc/hacking.texi +++ /dev/null @@ -1,959 +0,0 @@ -\input texinfo -@c $Id: hacking.texi,v 1.7 1999/05/13 11:37:12 ceder Exp $ -@c %**start of header -@setfilename hacking.info -@settitle Hacking lyskomd -@setchapternewpage odd -@c %**end of header - -@ifinfo -This is a guide to hacking lyskomd. - -Copyright @copyright{} 1999 Lysator ACS. - -Permission is granted to make and distribute verbatim copies of this -specification provided the copyright notice and this permission notice -are preserved on all copies. -@end ifinfo - -@dircategory LysKOM -@direntry -* Hacking lyskomd: (hacking). How to hack lyskomd. -@end direntry - -@titlepage -@sp 10 -@title Hacking lyskomd -@sp 2 -@subtitle How to extend, modify and generally mess up lyskomd -@sp 2 -@author by the lyskomd developers - -@page -@vskip 0pt plus 1filll -Copyright @copyright{} 1995-1999 Lysator ACS - -Permission is granted to make and distribute verbatim copies of this document -provided the copyright notice and this permission notice are preserved on all -copies. - -Modified versions of this document may be redistributed with the added -condition that all modifications not cleared with the LysKOM development group -are clearly marked and that the entire modified work be redistributed under the -same conditions as the original. - -Permission is granted to copy and distribute translations of this manual into -another language under the same conditions as for modified versions. - -@end titlepage - -@ifinfo -@node Top, Adding Asynchronous Message, (dir), (dir) -@comment node-name, next, previous, up -@top Hacking lyskomd - - -@menu -* Adding Asynchronous Message:: -* Adding Configuration Parameters to the Server:: How to add config params. -* Adding a New Protocol Request:: How to extend protocol A. -* Adding Aux-Item Types:: -* Modifying an Existing Stored Type:: -* Notes:: -* Debugging and Testing:: -@end menu - -@end ifinfo - -@node Adding Asynchronous Message, Adding Configuration Parameters to the Server, Top, Top -@comment node-name, next, previous, up -@chapter Adding Asynchronous Messages - -@table @code - -@item async.h -Add the message in @code{typedef enum @{ @} Async}. Make sure that -@code{ay_dummy_last} is one more than any other message. If the message -is to be sent by default, which is @i{not} recommended, place its number -info @code{ASYNC_DEFAULT_MESSAGES}. - -@item prot-a-send-async.c -@item prot-a-send-async.h -Write a function that sends the message. This function is responsible -for writing the message to a particular connection and for ensuring that -the message is not sent to clients who do not want it. Make sure that -the second argument to @code{async_header} really is the number of -elements being sent. Arrays count as two elements: the item count and -the elements. - -@item send-async.c -@item send-async.h -Write a function that sends the message to appropriate clients. This -function is responsible for checking that async messages should be sent -at all, for each client check if it allowed to see the message and -ensure that the protocol specified by the connection is appropriate. The -send function should either take a @code{struct connection *} as an -argument and send the message to that connection, or loop over all -connections. Most send functions take a connection pointer; the looping -is dealt with elsewhere. - -@item Make sure that the message is sent in appropriate places. - -@item Document the message type in @code{Protocol-A.texi}. - -@end table - -@menu -* Function Templates for prot-a-send-async.c:: -* Function Templates for send-async.c:: -@end menu - - -@node Function Templates for prot-a-send-async.c, Function Templates for send-async.c, Adding Asynchronous Message, Adding Asynchronous Message -@comment node-name, next, previous, up -@section Function Templates for prot-a-send-async.c - -This is what a typical function in @code{prot-a-send-async.c} should -look like. This function is responsible for checking that the client is -accepting the message and writing the message itself to the connection. - -@example -void -prot_a_async_@i{something}(Connection *cptr, - @i{parameters}) -@{ - ASYNC_CHECK_ACCEPT(cptr, ay_@i{something}); - async_header(cptr, @i{num_tokens}, ay_@i{something}); - /* Output the body of the message */ - async_trailer(cptr); -@} -@end example - - -@node Function Templates for send-async.c, , Function Templates for prot-a-send-async.c, Adding Asynchronous Message -@comment node-name, next, previous, up -@section Function Templates for send-async.h - -This is what a typical function in @code{send-async.c} should look like. -This function is responsible for sending the message to all connections -that are appropriate, not sending it if the server is not supposed to -send messages at all, and for checking that the protocol specified by -the client is one the server knows. - -@example -void async_@i{something}( @i{parameters} ) -@{ - Connection *cptr; - Session_no i = 0; - - if (!param.send_async_messages) - return; - - while ((i = traverse_connections(i)) != 0) - @{ - cptr = get_conn_by_number(i); - - switch(cptr->protocol) - @{ - case 0: - /* No protocol specified yet */ - break; - case 'A': - /* Check that connection is logged on. We might - want to check other things here too, such as - if the connection is allowed to see the message */ - if (cptr->username_valid == TRUE) - prot_a_async_@i{something}(cptr, @i{parameters}); - break; - default: - restart_kom("async_@i{something}(): bad protocol.\n"); - break; - @} - @} -@} -@end example - -Template for a function that sends to a single connection: -@example -void async_@i{something}(struct connection *cptr, - @i{parameters}) -@{ - if (!param.send_async_messages) - return; - - switch(cptr->protocol) - @{ - case 0: - /* No protocol specified yet */ - break; - case 'A': - /* Check that connection is logged on. We might - want to check other things here too, such as - if the connection is allowed to see the message */ - if (cptr->username_valid == TRUE) - prot_a_async_@i{something}(cptr, @i{parameters}); - break; - default: - restart_kom("async_@i{something}(): bad protocol.\n"); - break; - @} -@} -@end example - - -@node Adding Configuration Parameters to the Server, Adding a New Protocol Request, Adding Asynchronous Message, Top -@comment node-name, next, previous, up -@chapter Adding Configuration Parameters to the Server - -Make sure that you really understand what you want to configure. Think -it over again. Find a good, descriptive name for it. - -Decide what values the parameter can be set to. Integers? Booleans? - -Document the parameter in @code{lyskomd.texi}. - -Add a field to @code{stuct kom_par} in @code{param.h}. - -Add it to @code{parameters[]} in @code{server-config.c}. See -@code{conf-file.h} and maybe @code{conf-file.c} for information on this -structure. - -Make sure that the parameter is used instead of any previous hard-coded -value. Make sure that @code{dbck} can cope with it. - - -@node Adding a New Protocol Request, Adding Aux-Item Types, Adding Configuration Parameters to the Server, Top -@comment node-name, next, previous, up -@chapter Adding a New Protocol Request - -Before doing anything, think again. Make sure that the protocol request -is needed, is in line with the rest of the protocol, behaves the way -people want it to, and that everyone involved agrees that it is a good -idea. - -@enumerate -@item Document the request in @code{Protocol-A.texi} - -@item Declare the function in @code{include/services.h} - -@item Declare the function @i{last} in @code{server/fncdef.txt}. It -should be given a call number one higher than the currently existing -highest contiguous call number. - -@item If the function takes a pn input parameter of a new type, changes -need to be made in several places. @xref{Adding New Input Types}. - -@item If the function takes too many parameters of type @code{num}, -@code{string} or @code{c_string}, the definition of @code{Connection} in -@code{server/connection.h} has to be changed. - -@item If the function has an output parameter of a new type, changes -need to be made in several plaves. @xref{Adding New Result Types}. - -@item Write the function in a suitable place in the server directory. - -@item Write tests for the new function in -@code{server/testsuite/lyskomd.0}. Write one file for testing the -functionality. Write tests in @code{01.exp} (behavior when the client is -not logged on) and @code{03.exp} (normal behavior.) - -@item Run the testsuite to make sure nothing old has been broken. -@end enumerate - -It is no longer necessary to update prot_a_is_legal_fnc since it is -generated automatically. - - -@menu -* Adding New Input Types:: Procedure for adding input types. -* Adding New Result Types:: Procedure for adding output types. -* Modifying Output Types:: Procedure for modifying output types. -@end menu - - -@node Adding New Input Types, Adding New Result Types, Adding a New Protocol Request, Adding a New Protocol Request -@comment node-name, next, previous, up -@section Adding New Input Types - -Changes need to be made in the following files: - -@table @code -@item Protocol-A.texi -Document the new type. - -@item server/call-switch.awk -The new type has to be added to the cascaded ifs that translate the type -name to code that points to the appropriate field in a -@code{Connection} structure. - -@item server/prot-a-parse-arg-c.awk -The new type has to be added to the cascaded ifs that create the -argument list parser. - -@item server/connections.h -The definition of @code{Connection} must be extended with a field where -the parse value can be stored. Don't even think about trying to reuse an -existing field. It's more trouble than it's worth. - -@item server/connection.c -Free the contents of the field in @code{free_parsed()}. - -@item server/internal-connections.c -Initialize the contents of the field in @code{init_connection()}. - -@end table - - - -@node Adding New Result Types, Modifying Output Types, Adding New Input Types, Adding a New Protocol Request -@comment node-name, next, previous, up -@section Adding New Result Types - -Changes need to be made in the following files: - -@table @code -@item Protocol-A.texi -Document the new type. - -@item server/prot-a.c -Add a line in the @code{prot_a_reply} switch that calls the correct -output function. - -@item server/connections.h -Add the type in @code{Res_type}and @code{Result_holder}. - -@item server/prot-a-output.c -@item server/prot-a-output.h -Write a function that outputs the new type -to a connection. Use the existing functions as templates. -@end table - - -@node Modifying Output Types, , Adding New Result Types, Adding a New Protocol Request -@comment node-name, next, previous, up -@section Modifying Output Types - -When you modify an existing type you have to rename the old version of -the type since it will still be used in existing calls. The convention -hs previously been to rename @code{Something} to @code{Something_old}, -but the preferred method is to append an underscore and the protocol -version in which the current version of the type was introduced. For -example, if the type @code{Gazonk} was introduced in protocol version -11, and a new version is to be introduced in protocol version 15, the -current @code{Gazonk} structure is renamed to @code{Gazonk_11}. - -This is to avoid names like @code{Something_older}, -@code{Something_oldest} and @code{Something_Truly_Ancient}. - - -Changes need to be made to the following files: - -@table @code -@item Protocol-A.texi -Document the new type in the appropriate section. Rename the existing -type in the type documentation and in all calls that return it. Be -thorough! - -@item fncdef.txt -Rewrite all calls that use the modified type so they use the old version -of the type. - -@item prot-a.c -Modify the current line in @code{prot_a_reply} for the existing version -of the type, and add a new line for the new version of the type. - -@item connections.h -Modify the existing entry in @code{Res_type} and @code{Result_holder}, -if necessary. This should only be necessary if the server uses both a -new and old type internally, which is not recommended. Add new entries -for the new version of the type. - -@item prot-a-output.h -@item prot-a-output.c -Rename the existing output routing according to the new name of the -type. Write a new output routine for the new version of the type. - -@item memory.c -If there are functions for the type in @code{memory.c}, make sure that -your new type is initialized, cleared and copied in an appropriate -manner. - -@end table - -If the type you modify is stored in the database, make sure it gets -saved properly. @xref{Modifying an Existing Stored Type}. - - -@node Adding Aux-Item Types, Modifying an Existing Stored Type, Adding a New Protocol Request, Top -@comment node-name, next, previous, up -@chapter Adding Aux-Item Types - -@enumerate -@item Document the new type in Protocol-A.texi - -@item Write a definition of the new type in -@code{run-support/aux-items.conf}. - -@item Write test cases for the new type in -@code{server/testsuite/lyskomd.0/03.exp}. - -@item If the new type requires add, delete or undelete triggers that do -not already exist, declare the trigger functions in @code{aux-items.c} -and add them to the @code{aux_item_triggers} array in the same file. - -@item If the new type is so complex that is cannot be fully defined in -@code{aux-items.conf}, then add it to the @code{compiled_aux_items} -array in @code{aux-items.c}. Note that this functionality has not been -tested until someone actually adds one of these beasts, so watch your -step. - -@end enumerate - - -@node Modifying an Existing Stored Type, Notes, Adding Aux-Item Types, Top -@comment node-name, next, previous, up -@chapter Modifying an Existing Stored Type - -If you want to modify an existing type that is stored in the database, -think again. Can the job be done with aux-items instead? Is it really -necessary? - -Be very, very careful when doing this. You have to make sure that the -type as sent in old calls and async messages is not changed in any way. -You have to make sure that the type can be stored to and read from the -database. - -@enumerate -@item Document the changes in Protocol-A.texi if the change is visible -in the protocol. - -@item Bump the database version number by one for the next release of -the server. - -@item Write a function in @file{ram-output.c} to output the new format. -Update all old functions in @file{ram-output.c} that are database -version dependent so that they can deal with the new database format. - -@item Write a function in @file{ram-parse.c} to read the new format. -Update all old functions in @file{ram-parse.c} that are database version -dependent so that they can deal with the new database format. - -@item Set the default database format in @file{ram-parse.c} and -@code{ram-output.c}. The variables to change are @code{input_format} and -@code{output_format}, respectively. - -@item Don't forget to update the functions in @file{memory.c} - -@end enumerate - -@menu -* Template for ram-output.c:: -* Template for ram-parse.c:: -@end menu - - -@node Template for ram-output.c, Template for ram-parse.c, Modifying an Existing Stored Type, Modifying an Existing Stored Type -@comment node-name, next, previous, up -@section Template for ram-output.c - -For types that can be output in several different formats, use the -following templates for them. You have to be able to output in all -formats, or @code{dbck} will be unable to convert between formats. - -@example -static void -foutput_@i{something}_0(FILE *fp, @i{something} *o) -@{ - /* Output version 0 of @i{something} */ -@} - -static void -foutput_@i{something}_1(FILE *fp, @i{something} *o) -@{ - /* Output version 1 of @i{something} */ -@} - -static void -foutput_info_2(FILE *fp, @i{something} *o) -@{ - /* Output version 2 of @i{something} */ -@} - - -void foutput_@i{something}(FILE *fp, @i{something} *o) -@{ - switch(output_format) - @{ - case 0: - foutput_@i{something}_0(fp, info); - break; - case 1: - foutput_@i{something}_1(fp, info); - break; - case 2: - foutput_@i{something}_2(fp, info); - break; - default: - restart_kom("unknown database format: %d", output_format); - break; - @} -@} -@end example - -Note that if two versions are the same, only write one functions. For -example, if version 0 and version 1 are the same, only write an -@code{foutput_@i{something}_0} function and call it from both case 0 and -case 1. - -@node Template for ram-parse.c, , Template for ram-output.c, Modifying an Existing Stored Type -@comment node-name, next, previous, up -@section Template for ram-parse.c - -@example -static Success -fparse_@i{something}_0(FILE *fp, @i{something} *o) -@{ - /* Parse version 0 */ - return OK; -@} - -static Success -fparse_@i{something}_1(FILE *fp, @i{something} *o) -@{ - /* Parse verson 1 */ - return OK; -@} - -static Success -fparse_@i{something}_2(FILE *fp, @i{something} *o) -@{ - /* Parse verson 2 */ - return OK; -@} - -extern Success -fparse_@i{something}(FILE *fp, @i{something} *o) -@{ - if ( fparse_long_errors != 0 ) - @{ - log("fparse_info(): fparse_long_errors == %d on entry. Reset.\n", - fparse_long_errors); - fparse_long_errors = 0; - @} - - switch (input_format) - @{ - case 0: - return fparse_@i{something}_0(fp, o); - break; - case 1: - return fparse_@i{something}_1(fp, o); - break; - case 2: - return fparse_@i{something}_2(fp, o); - break; - default: - restart_kom("unknown input format: %d\n", input_format); - return FAILURE; - break; - @} -@} -@end example - -Note that if two versions are the same, only write one functions. For -example, if version 0 and version 1 are the same, only write an -@code{fparse_@i{something}_0} function and call it from both case 0 and -case 1. - - -@node Notes, Debugging and Testing, Modifying an Existing Stored Type, Top -@comment node-name, next, previous, up -@chapter Notes - -@menu -* Parsing Bit Fields:: -* Membership Notes:: -* Linking Pairs of Aux Items:: -* Notes for fncdef.txt:: -* Traversing Connections:: -@end menu - - -@node Parsing Bit Fields, Membership Notes, Notes, Notes -@comment node-name, next, previous, up -@section Parsing Bit Fields - -The parser for a bit field parameter type should be very tolerant of the -length of the token. Anything from a single bit and up should be -permitted. The parser should use default values for bits that are not -provided and ignore extra bits. - -Here is a model function: - -@example -void -prot_a_parse_bitfield(Connection *client, - Bitfield *res) -@{ - String token; - String_size len; - - token = prot_a_get_token(client); - len = s_strlen(token); - if (len <= 0) - longjmp(parse_env, ISC_PROTOCOL_ERR); - - init_bitfield(res); - switch (len = s_strlen(token)) - @{ - default: - case 8: res->bit_8 = token.string[ 7 ]; - case 7: res->bit_7 = token.string[ 6 ]; - case 6: res->bit_6 = token.string[ 5 ]; - case 5: res->bit_5 = token.string[ 4 ]; - case 4: res->bit_4 = token.string[ 3 ]; - case 3: res->bit_3 = token.string[ 2 ]; - case 2: res->bit_2 = token.string[ 1 ]; - case 1: res->bit_1 = token.string[ 0 ]; - @} -@} -@end example - -The function gets the token, checks the sanity of the length, then -initialized the result to its default values. Then it does a switch on -all token lengths that are equal to or smaller than the number of bits -the server knows about. The fall-through ensures that all bits in the -token are read. - - -@node Membership Notes, Linking Pairs of Aux Items, Parsing Bit Fields, Notes -@comment node-name, next, previous, up -@section Membership Notes - -The @code{position} field in the membership is @i{not} stored. It has to -be set every time a membership is requested for transmission to the -client. - - - -@node Linking Pairs of Aux Items, Notes for fncdef.txt, Membership Notes, Notes -@comment node-name, next, previous, up -@section Linking Pairs of Aux Items - -Sometimes two aux items need to work in tandem. The first instance of -this was the FAQ and FAQ-for-conference items. The FAQ item contains the -text number of a text that is a FAQ for a conference. The -FAQ-for-conference item contains the conference for which a text is a -FAQ. This is needed so that deletion of the text properly removes the -aux-item on the conf (plus, it's nice to be able to see that a text is a -FAQ.) - -The @code{linked_item} field in the Aux_item structure is for linking -items. The linking must be managed through the use of triggers. This -field is not visible in the protocol. It is saved in the database. It is -not possible to have more than one link per item. - -Please remember the following points. - -@itemize @bullet - -@item The target of a link should have a link back. All links need to go -both ways. - -@item In the add trigger for one end, create the other end of the link -and set the @code{linked_item} field in both items. Don't forget to mark -the objects at both ends as changed. - -@item Deletion and undeletion of the other side of the link will be -managed automatically. You don't need delete and undelete triggers -simply to destroy the other side of a link. - -@item Don't kill the server because one end is missing. It is possible -for the administrator to remove an item manually. Log a message and -continue working. - -@end itemize - - - - - - -@node Notes for fncdef.txt, Traversing Connections, Linking Pairs of Aux Items, Notes -@comment node-name, next, previous, up -@section Notes for fncdef.txt - -The fncdef.txt file is used to define the RPC functions. Each line -consists of the call number, the return type of the call, the parameters -and the output types of the call. - -Some examples: - -@example - 10 number create_conf_old c_string (param.conf_name_len) conf_type - 12 success lookup_name c_string (param.conf_name_len) : conf_list -@end example - -The first line defines a call named @code{create_conf_old} that takes -two arguments, a string that can only be as long as -@code{param.conf_name_len} and a @code{conf_type}. It returns a number -to the client. If the service call returns -1, the server will return an -error. The @code{create_conf_old} call has RPC number 10. - -The second line defines a call named @code{lookup_name} that takes a -string argument that can be no longer than @code{param.conf_name_len}, -and returns a @code{conf_list}. The service call returns a -@code{Success}. If it does not return @code{OK}, the server will return -an error. The @code{lookup_name} call has RPC number 12. - - -@subsection Scripts That Use fncdef.txt - -The following scripts operate on @code{fncdef.txt}. If you make -modifications to the format of @code{fncdef.txt}, you have to update -these scripts. - -@table @code -@item call-switch.awk -Generates @code{call-switch.incl}, which is included by -@code{connections.c} - -@item com-h.awk -Generates @code{com.h}, which is included by several files. - -@item fnc-def-init.awk -Generates @code{fnc-def-init.incl}, which is included by -@code{connections.c}. - -@item prot-a-is-legal-fnc.awk -Generates @code{prot-a-is-legal-fnc.incl}, which is included by -@code{prot-a.c} - -@item prot-a-parse-arg-c.awk -@item prot-a-parse-arg-h.awk -Generates @code{prot-a-parse-arg.c} and @code{prot-a-parse-arg.h}. -@end table - - -@node Traversing Connections, , Notes for fncdef.txt, Notes -@comment node-name, next, previous, up -@section Traversing Connections - -Since session 0 is interpreted as the currently active session by -get_conn_by_number it is important to be careful when traversing -sessions. Code like this does not work since it will do one iteration -through the loop with @code{sess} set to zero. This formerly caused -@code{get_conn_by_number} to return @code{NULL}, but now causes it to -return the session pointer for the current session. - -@example - for (sess = 0; (sess = traverse_connections(sess)) != 0; ) - @{ - cptr = get_conn_by_number(sess); - ... - @} -@end example - -The canonical traversal code looks like this: - -@example - Session_no session = 0; - while ((session = traverse_connections(session)) != 0) - @{ - cptr = get_conn_by_number(session); - ... - @} -@end example - -This code has @code{session} set to a session number before ever -entering the loop. - - -@node Debugging and Testing, , Notes, Top -@comment node-name, next, previous, up -@chapter Debugging and Testing - -We're slowly adding support for debugging and testing lyskomd properly. - -@menu -* The Test Suite:: The lyskomd regression test suite. -* Configuration Options:: Debugging options for the configure script. -* Coverage Testing:: How to do coverage testing with gcov. -* Debug Calls:: Special protocol A calls for testing. -@end menu - -@node The Test Suite, Configuration Options, Debugging and Testing, Debugging and Testing -@comment node-name, next, previous, up -@section The Test Suite - -The lyskomd test suite is in src/server/testsuite. Please extend this -with additional test cases every time you make modifications to the -server. Run the test suite often to make sure that your changes did not -break anything. - -The file config/prot-a.exp contains some support for protocol A. Don't -use these functions in test cases. Use them to set up the inital -database and for things tht have to be done, such as logins and enabling -privileges, but that don't need to be tested. Also, don't count on all -the code in prot-a.exp to be fully functional. Add new functions to this -file as you see fit. - -The basic structure of a test case is the following: - -@example -source "config/prot-a.exp" -read_versions - -lyskomd_start -client_start 0 -talk_to client 0 -kom_connect "DejaGnu test suite" - -@i{The test cases} - -talk_to client 0 -kom_logout -kom_login 5 [holl "gazonk"] 0 -kom_enable 255 -send "9999 44 0\n" -simple_expect "=9999" - -client_death 0 -lyskomd_death -@end example - -Use the existing test cases as templates. - - -@node Configuration Options, Coverage Testing, The Test Suite, Debugging and Testing -@comment node-name, next, previous, up -@section Configuration Options - -There are several testing and debugging-related configuration options -for lyskomd. Some of them also apply to libisc. - -@table @code -@item --with-purify -Build lyskomd with Purify. This currently does not work. - -@item --with-efence -Build lyskomd with Electric Fence for checking buffer overruns. This -option does work. - -@item --with-checker -Build lyskomd with Gnu Checker for checking memory accesses, leaks, file -descriptors and all kinds of stuff. As of Checker version 0.99.6, Gnu -Checker cannot deal with lyskomd. Once built, and this requires -modifications to Checker (at least on Linux) it reports spurious errors. -Still, the option is here for those who want to try it out. - -@item --with-gcov -Build lyskomd with instrumentation for @code{gcov}. You have to use this -option if you want to run @code{gcov} on lyskomd. For @code{gcov} to be -effective, you should turn off optimization as well. - -@item --with-optimization=@i{value} -Build lyskomd with the specified level of optimization. Use either -numeric values to select the level of optimization, or say -@code{--with-optimization=no} or @code{--without-optimization} to turn -optimization off. - -@end table - - - -@node Coverage Testing, Debug Calls, Configuration Options, Debugging and Testing -@comment node-name, next, previous, up -@section Coverage Testing - -When you write new code, make sure that it is completely covered by the -test suite. Run the lyskomd configure script with the -@code{--with-gcov}, @code{--with-debug-calls} and -@code{--without-optimization} flags to instrument the server for -coverage testing with gcov. - -If you run configure without the @code{--without-optimization} option, -the server will be compiled with optimizations on. This is fine, but the -coverage data from gcov isn't completely reliable since parts of the -program may have been optimized out of existance. - -Recompile everything, then run the test suite. Next do @code{gcov -f } -@i{filename} to compute coverage information for the file @i{filename}. -The resulting file @i{filename}@code{.gcov} shows which lines have been -executed, and which haven't been run. Try to get 100% coverage. - - -@node Debug Calls, , Coverage Testing, Debugging and Testing -@comment node-name, next, previous, up -@section Debug Calls - -Run the configure script with @code{--with-debug-calls} to compile in -support for debugging calls in the server. These calls are strictly for -making testing easier (or possible.) They are not official, and they may -change at any time. - -@menu -* memory-info:: Get information from malloc (1000) -* set-marks:: Set the number of marks on a text (1001) -* backdate-text:: Change the creation date of a text (1002) -@end menu - -@node memory-info, set-marks, Debug Calls, Debug Calls -@comment node-name, next, previous, up -@subsection memory-info (DEBUG) Experimential - -@findex memory-info -@example - memory-info [1000] ( ) - -> (( arena : INT32; - ordblks : INT32; - smblks : INT32; - hblks : INT32; - hblkhd : INT32; - usmblks : INT32; - fsmblks : INT32; - uordblks : INT32; - fordblks : INT32; - keepcost : INT32; )); -@end example - -This call returns the data returned by @code{mallinfo} in the server. -See the man page for @code{mallinfo} for explanations of the fields. - -@node set-marks, backdate-text, memory-info, Debug Calls -@comment node-name, next, previous, up -@subsection set-marks (DEBUG) Experimental - -@findex set-marks -@example - set-marks [1001] (( text-no : Text_no; - no-of-marks : INT32; )) - -> ( ); -@end example - -Set the number of marks on text @code{text-no} to @code{no-of-marks}, -regardless of how many marks it really has. This call is useful for -forcing the database into a state where the number of marks is incorrect -in some way. - - -@node backdate-text, , set-marks, Debug Calls -@comment node-name, next, previous, up -@subsection backdate-text (DEBUG) Experimental - -@findex backdate-text -@example - backdate-text [1002] (( text-no : Text_no; - seconds : INT32; )) - -> ( ); -@end example - -Backdate a text in the server. Change the creation date of text -@code{text-no} so it appears to have been created @code{seconds} earlier -than it was actually created. This can be used to test the garbage -collector. - -@contents -@bye - - diff --git a/doc/known-server-bugs b/doc/known-server-bugs deleted file mode 100644 index 2647e8152..000000000 --- a/doc/known-server-bugs +++ /dev/null @@ -1,10 +0,0 @@ -The server leaks some memory. This will probably be fixed in the next -release. - - -Not all information that should be written to the data file is -written. The struct serverinfo should be saved between invocations. - - -There should be more asynchronous messages so that the cache in the -elisp client can be more consistent with the real world. diff --git a/doc/known-servers b/doc/known-servers deleted file mode 100644 index 96b535d49..000000000 --- a/doc/known-servers +++ /dev/null @@ -1,14 +0,0 @@ -kom.lysator.liu.se ceder@lysator.liu.se - -kom.cd.chalmers.se "Tomas Tengling, CD"@kom.lysator.liu.se - -capella.hh.se, helios.hh.se hamcom@hh.se - -mother.ludd.luth.se -flyttar till omega.ludd.luth.se? - -minsk.docs.uu.se - -? Robert Malmgren <rom@it.kth.se> - -emil.csd.uu.se diff --git a/doc/lyskomd-database-format b/doc/lyskomd-database-format deleted file mode 100644 index b0e252cd7..000000000 --- a/doc/lyskomd-database-format +++ /dev/null @@ -1,141 +0,0 @@ - - - THE LYSKOMD DATABASE FORMAT - - -DATABASE VERSION 0 - -This database consists of a header which can be 'CLEAN' or 'DIRTY' -followed by a single newline character. Following that is an integer -in ASCII decimal form on a single line. This is followed by that -number of lines of conferences, followed by the same number of -persons. Next is a single integer on a single line followed by that -number of text-stat records. - -DATABASE ::= HEADER '\n' - NEXT-FREE-NUM '\n' - CONFS - PERSONS - NEXT-TEXT-NUM '\n' - TEXTS - ; - -HEADER ::= 'CLEAN' - | 'DIRTY' - ; - -NEXT-FREE-NUM ::= [0-9]+ - -CONFS ::= CONF ** NEXT-TEXT-NUM - -CONF ::= EMPTY-RECORD - | '+' CONF-RECORD '\n' - ; - -PERSONS ::= PERSON ** NEXT-TEXT-NUM - ; - -PERSON ::= EMPTY-RECORD - | '+' PERSON-RECORD '\n' - ; - -NEXT-TEXT-NUM ::= [0-9]+ - ; - -TEXTS ::= TEXT ** NEXT-TEXT-NUM - ; - -TEXT ::= EMPTY-RECORD - | '+' TEXT-RECORD '\n' - ; - -EMPTY-RECORD ::= '@\n' - - -Notes - -o Records are stored sequentially; e.g. the eighteenth conference - record is conference number 18. This means that deleted records must - be stored using the EMPTY-RECORD format. - -o NEXT-TEXT-NUM is the number of the highest text. There are exactly - this number of text records. - -o NEXT-FREE-NUM is the number of the highest conference. There are - exactly this number of person and conference records. - - - -DATABASE VERSION 1 - -This database consists of a one-line header followed by a list of -tagged records. - - -DATABASE ::= HEADER '\n' RECORDS - ; - -HEADER ::= CLEAN:00001 - | DIRTY:00001 - ; - -VERSION ::= [0-9] ** 5 - ; - -RECORDS ::= RECORDS RECORD - ; - -RECORD ::= NEXT-FREE-NUM - | NEXT-TEXT-NUM - | CONFERENCE - | PERSON - | SERVER-INFO - | TEXT - | DELETED - ; - -NEXT-FREE-NUM ::= '#C' [0-9]+ - ; - -NEXT-TEXT-NUM ::= '#P' [0-9]+ - ; - -CONFERENCE ::= 'C' NUMBER CONF-RECORD '\n' - ; - -PERSON ::= 'P' NUMBER PERSON-RECORD '\n' - ; - -TEXT ::= 'T' NUMBER TEXT-RECORD '\n' - ; - -SERVER-INFO ::= 'I' SERVER-INFO-RECORD '\n' - ; - -DELETED ::= '-C' [0-9]+ '\n' - | '-P' [0-9]+ '\n' - | '-T' [0-9]+ '\n' - ; - - -Notes: - -o NUMBER in conferences persons and texts is the ID of the record - described. Records can come in any order. - -o The NEXT-FREE-NUM record denotes the highest conference number in - the system. - -o The NEXT-TEXT-NUM record denotes the highest test number in the - system. - -o A conference or text must have a number lower than the closest - NEXT-FREE-NUM or NEXT-TEXT-NUM before it. - - -DATABASE VERSION 2 - -Identical to version 1, but SERVER-INFO, CONF-RECORD, PERSON-RECORD -and TEXT-RECORD also include the highest_aux_no and aux_item_list -fields of the data structure, and CONF-RECORD has the expire field. -Also, CONF-RECORD and PERS-RECORD uses the Local_to_global structure. diff --git a/doc/lyskomd.texi b/doc/lyskomd.texi index e718b5f7d..b2eff5198 100644 --- a/doc/lyskomd.texi +++ b/doc/lyskomd.texi @@ -1,5 +1,5 @@ \input texinfo -@c $Id: lyskomd.texi,v 1.18 1999/05/21 06:45:45 ceder Exp $ +@c $Id: lyskomd.texi,v 1.19 1999/05/21 11:31:59 byers Exp $ @c %**start of header @setfilename lyskomd.info @include version.texi @@ -7,6 +7,23 @@ @setchapternewpage odd @c %**end of header +@iftex +@parindent 0pt +@begin tex +\global\def\BB#1{\b{#1}} +\global\def\II#1{\i{#1}} +@end tex +@end iftex + +@ifinfo +@macro BB {text} +'\text\' +@end macro +@macro II {text} +/\text\/ +@end macro +@end ifinfo + @ifinfo This is the reference manual for the lyskomd LysKOM server version @value{VERSION}. @@ -68,6 +85,7 @@ documents version @value{VERSION} of lyskomd. * Bugs:: Known bugs in lyskomd. * DBCK Reference:: Checking and repairing the database. * Hacking:: Notes for server developers. +* lyskomd Database Specification:: @end menu @end ifinfo @@ -1310,7 +1328,7 @@ base. Most of the time this is the only complete database file! @c ====================================================================== -@node Hacking, , DBCK Reference, Top +@node Hacking, lyskomd Database Specification, DBCK Reference, Top @comment node-name, next, previous, up @chapter Hacking lyskomd @@ -1360,6 +1378,10 @@ base. Most of the time this is the only complete database file! @c FIXME: @c FIXME: Fil A Senaste kompletta fil. @c FIXME: Fil B Fil under uppbyggnad. +@c FIXME FIXME: Fil Z N�st senast kompletta fil +@c FIXME FIXME: (den h�r gick att kopiera en g�ng i +@c FIXME FIXME: tiden, �ven om A inte g�r att kopiera +@c FIXME FIXME: just nu.) @c FIXME: @c FIXME: (Dessutom textmassefilen, precis som ramkomd nuf�rtiden.) @c FIXME: @@ -2398,5 +2420,175 @@ collector. + + + + +@c ====================================================================== +@c ====================================================================== +@c == == +@c == LYSKOMD DATABASE FORMAT == +@c == == +@c ====================================================================== +@c ====================================================================== + + + +@ifinfo +@node lyskomd Database Specification, , Hacking, Top +@comment node-name, next, previous, up +@chapter lyskomd Database Specification + +This document specifies the format of the lyskomd database files. The +specification is currently incomplete. Only the structure, not the +actual data records are documented. + +@menu +* Version 0:: Database used with early versions of lyskomd. +* Version 1:: Database used with lyskomd 1.9.0. +* Version 2:: Database used with lyskomd 2.0.0. +@end menu + +@end ifinfo + +@node Version 0, Version 1, lyskomd Database Specification, lyskomd Database Specification +@comment node-name, next, previous, up +@section Data File Version 0 + +Version 0 was used by lyskomd versions up to 1.8. + +@example +database : header @II{NL} + next-free-num @II{NL} + confs + persons + next-text-num @II{NL} + texts + ; +header : @BB{CLEAN} + | @BB{DIRTY} + ; +next-free-num : @II{INTEGER} + ; +confs : confs conf + | @II{empty} + ; +conf : empty-record + | @BB{+} conf-record @II{NL} + ; +persons : persons person + | @II{empty} + ; +person : empty-record + | @BB{+} person-record @II{NL} + ; +next-text-num : @II{INTEGER} + ; +texts : texts text + | @II{empty} + ; +text : empty-record + | @BB{+} text-record @BB{NL} + ; +empty-record : @BB{@@} @BB{NL} + ; +@end example + +The number of person and conference records is exactly one less than +@II{next-free-num}. The number of text records is exactly one less than +@II{next-text-num}. + +Records are stored sequentially. Conference number 18 is the 18th +conference record in the file. This implies that deleted records must be +stored as @II{empty-record} records. + +@II{next-text-num} is the number of the highest text. There are exactly +one less than +this number of text records in the database. + +@II{next-free-num} is the number of the highest conference. There are +exactly one less than this number of both person and conference +records. This implies that if conference N is not a letterbox, then +person record N will be an @II{empty-record}. + +If the header says ``CLEAN'', the database file is complete. If the +header says ``DIRTY'', the server has not finished writing it +completely. + + +@node Version 1, Version 2, Version 0, lyskomd Database Specification +@comment node-name, next, previous, up +@section Data File Version 1 + +Version 1 was used by lyskomd version 1.9. + +@example +database : header @BB{NL} @BB{records} + ; +header : @BB{CLEAN:00001} + | @BB{DIRTY:00001} + ; +records : records record + | @II{empty} + ; +record : next-free-num + | next-text-num + | conference + | person + | info + | text + | deleted + ; +next-free-num : @BB{#C} @II{INTEGER} + ; +next-text-num : @BB{#P} @II{INTEGER} + ; +conference : @BB{C} @II{integer} conf-record @BB{NL} + | @BB{P} @II{integer} person-record @BB{NL} + | @BB{T} @II{integer} text-record @BB{NL} + | @BB{I} info-record @BB{NL} + ; +deleted : @BB{-C} @II{integer} @BB{NL} + | @BB{-P} @II{integer} @BB{NL} + | @BB{-T} @II{integer} @BB{NL} + ; +@end example + +The integer in the conference, text and person records is the ID of the +record. This implies that records can be in any order. + +The @II{next-free-num} record is used to store the next available ID for +conferences in the system. There may be several of these records in the +database. + +The @II{next-text-num} record is used to store the next available ID for +texts in the system. There may be several of these records in the +database. + +A conference or text must have a number lower than the closest +@II{next-free-num} or @II{next-text-num} preceding it. + +The deletion records are used to indicate that an object found earlier +in the database has been deleted. The implementation of these in lyskomd +1.9 does not work, and they are not used. The @II{-C} record indicates +deletion of a conference. The @II{-P} record indicates deletion of a +person. The @II{-T} record indicates deletion of a text. The integer +in the deletion record is the ID of the object being deleted. + + +@node Version 2, , Version 1, lyskomd Database Specification +@comment node-name, next, previous, up +@section Data File Version 2 + +Version 2 is used by lyskomd version 2.0. + +The structure of this data file version is identical to that of version +1. The @II{server-info}, @II{conf-record} and @II{text-record} include +information about aux-items (highest-aux-no and aux-item-list.) The +@II{conf-record} contains the expire field added to the conf-stat +structure. The @II{conf-record} and @II{person-record} records use the new +local-to-global structure for storing maps. + + @contents @bye diff --git a/doc/lyskomdb.texi b/doc/lyskomdb.texi deleted file mode 100644 index d7eb445f2..000000000 --- a/doc/lyskomdb.texi +++ /dev/null @@ -1,256 +0,0 @@ -\input texinfo -@c $Id: lyskomdb.texi,v 1.3 1999/05/18 13:06:22 byers Exp $ -@c %**start of header -@setfilename lyskomdb.info -@settitle "lyskomd Database Format Specification" -@setchapternewpage odd -@c %**end of header - -@iftex -@parindent 0pt -@begin tex -\global\def\BB#1{\b{#1}} -\global\def\II#1{\i{#1}} -@end tex -@end iftex - -@ifinfo -@macro BB {text} -'\text\' -@end macro -@macro II {text} -/\text\/ -@end macro -@end ifinfo - - -@ifinfo -This is the specification for the lyskomd database format. - -Copyright @copyright{} 1999 Lysator ACS. - -Permission is granted to make and distribute verbatim copies of this -specification provided the copyright notice and this permission notice -are preserved on all copies. -@end ifinfo - -@dircategory LysKOM -@direntry -* Database Spec: (lyskomdb). lyskomd Database Specification. -@end direntry - -@titlepage -@sp 10 -@title "lyskomd Database Specification" -@sp 2 -@subtitle "Database version 2.0" -@sp 2 -@author by the lyskomd developers - -@page -@vskip 0pt plus 1filll -Copyright @copyright{} 1995-1999 Lysator ACS - -Permission is granted to make and distribute verbatim copies of this document -provided the copyright notice and this permission notice are preserved on all -copies. - -Modified versions of this document may be redistributed with the added -condition that all modifications not cleared with the LysKOM development group -are clearly marked and that the entire modified work be redistributed under the -same conditions as the original. - -Permission is granted to copy and distribute translations of this manual into -another language under the same conditions as for modified versions. - -@end titlepage - -@ifinfo -@node Top, Copying, (dir), (dir) -@comment node-name, next, previous, up -@top lyskomd Database Specification - -This document specifies the format of the lyskomd database files. The -specification is currently incomplete. Only the structure, not the -actual data records are documented. - -@menu -* Copying:: LysKOM is free software. -* Overview:: Overview of the lyskomd database. -* Version 0:: Database used with early versions of lyskomd. -* Version 1:: Database used with lyskomd 1.9.0. -* Version 2:: Database used with lyskomd 2.0.0. -@end menu - -@end ifinfo - -@node Copying, Overview, Top, Top -@comment node-name, next, previous, up -@chapter Copying - -dbck is part of the lyskomd distribution. - -lyskomd is free software. It is distributed under the Gnu General Public -License version 2. The file COPYING in the top level of the distribution -contains the text of the license. - - -@node Overview, Version 0, Copying, Top -@comment node-name, next, previous, up -@chapter Overview - -The lyskomd LysKOM server uses two separate files for the database. The -data file, normally @code{lyskom-data} contains information about -conferences, persons, texts and the server itself. The text file, -normally @code{lyskom-texts} contains the bodies of all texts. - -The format of the data file has changed three times since lyskomd was -first released. The @code{dbck} (@xref{(dbck)}) program can be used to -convert one format to another. - -Each database format is described in a sort of BNF-like syntax. Kind of. -Anything in boldface is a literal. For example, @BB{NL} means a newline -character and @BB{CLEAN} means the literal string ``CLEAN''. A fixed -number of repetitions of a nonterminal is expressed - - -@node Version 0, Version 1, Overview, Top -@comment node-name, next, previous, up -@chapter Data File Version 0 - -Version 0 was used by lyskomd versions up to 1.8. - -@example -database : header @II{NL} - next-free-num @II{NL} - confs - persons - next-text-num @II{NL} - texts - ; -header : @BB{CLEAN} - | @BB{DIRTY} - ; -next-free-num : @II{INTEGER} - ; -confs : confs conf - | @II{empty} - ; -conf : empty-record - | @BB{+} conf-record @II{NL} - ; -persons : persons person - | @II{empty} - ; -person : empty-record - | @BB{+} person-record @II{NL} - ; -next-text-num : @II{INTEGER} - ; -texts : texts text - | @II{empty} - ; -text : empty-record - | @BB{+} text-record @BB{NL} - ; -empty-record : @BB{@@} @BB{NL} - ; -@end example - -The number of person and conference records is exactly one less than -@II{next-free-num}. The number of text records is exactly one less than -@II{next-text-num}. - -Records are stored sequentially. Conference number 18 is the 18th -conference record in the file. This implies that deleted records must be -stored as @II{empty-record} records. - -@II{next-text-num} is the number of the highest text. There are exactly -one less than -this number of text records in the database. - -@II{next-free-num} is the number of the highest conference. There are -exactly one less than this number of both person and conference -records. This implies that if conference N is not a letterbox, then -person record N will be an @II{empty-record}. - -If the header says ``CLEAN'', the database file is complete. If the -header says ``DIRTY'', the server has not finished writing it -completely. - - -@node Version 1, Version 2, Version 0, Top -@comment node-name, next, previous, up -@chapter Data File Version 1 - -Version 1 was used by lyskomd version 1.9. - -@example -database : header @BB{NL} @BB{records} - ; -header : @BB{CLEAN:00001} - | @BB{DIRTY:00001} - ; -records : records record - | @II{empty} - ; -record : next-free-num - | next-text-num - | conference - | person - | info - | text - | deleted - ; -next-free-num : @BB{#C} @II{INTEGER} - ; -next-text-num : @BB{#P} @II{INTEGER} - ; -conference : @BB{C} @II{integer} conf-record @BB{NL} - | @BB{P} @II{integer} person-record @BB{NL} - | @BB{T} @II{integer} text-record @BB{NL} - | @BB{I} info-record @BB{NL} - ; -deleted : @BB{-C} @II{integer} @BB{NL} - | @BB{-P} @II{integer} @BB{NL} - | @BB{-T} @II{integer} @BB{NL} - ; -@end example - -The integer in the conference, text and person records is the ID of the -record. This implies that records can be in any order. - -The @II{next-free-num} record is used to store the next available ID for -conferences in the system. There may be several of these records in the -database. - -The @II{next-text-num} record is used to store the next available ID for -texts in the system. There may be several of these records in the -database. - -A conference or text must have a number lower than the closest -@II{next-free-num} or @II{next-text-num} preceding it. - -The deletion records are used to indicate that an object found earlier -in the database has been deleted. The implementation of these in lyskomd -1.9 does not work, and they are not used. The @II{-C} record indicates -deletion of a conference. The @II{-P} record indicates deletion of a -person. The @II{-T} record indicates deletion of a text. The integer -in the deletion record is the ID of the object being deleted. - - -@node Version 2, , Version 1, Top -@comment node-name, next, previous, up -@chapter Data File Version 2 - -Version 2 is used by lyskomd version 2.0. - -The structure of this data file version is identical to that of version -1. The @II{server-info}, @II{conf-record} and @II{text-record} include -information about aux-items (highest-aux-no and aux-item-list.) The -@II{conf-record} contains the expire field added to the conf-stat -structure. The @II{conf-record} and @II{person-record} records use the new -local-to-global structure for storing maps. - - -@bye diff --git a/doc/mall-swe.latexinfo b/doc/mall-swe.latexinfo deleted file mode 100644 index 938dab016..000000000 --- a/doc/mall-swe.latexinfo +++ /dev/null @@ -1,90 +0,0 @@ -\documentstyle[12pt,latexinfo,lyskom]{rapport} \c -*-latexinfo-*- -\pagestyle{empty} - -\begin{document} -\setfilename{foo -.info} -\bibliographystyle{alpha} - -\newindex{cp} -\newindex{fn} - -\title{Konferenssystemet\\ - LysKOM\\} - -\sp 3 - -\author{Thomas Bellman\\ - Lysator\\ - Bellman@Lysator.LiU.SE\\ - {\small Personnummer: 690423-4132}} - - -\date{\idag} - -\maketitle -\clearpage -\vspace{0pt plus 1filll} -Copyright \copyright{} 1990, 1991 Lysator - -\sp{2} - -Denna handledning beskriver konferenssystemet \LysKOM{}. H\"{a}r -beskrivs de allm\"{a}na principerna f\"{o}r \LysKOM{}, och de -tj\"{a}nster som systemet tillhandah\aa{}ller, samt \"{a}ven de finesser -som finns i \LysKOM{}. Den beskriver \emph{inte} hur man anv\"{a}nder -en klient f\"{o}r att k\"{o}ra \LysKOM{} eller hur man styr dessa -klienter. L\"{a}saren h\"{a}nvisas till respektive klients -anv\"{a}ndarhandledning f\"{o}r denna information, till exempel -\cite{LysKOM:TTY-client.swe}. - - -\sp{2} -\sp{4} -Tillst\aa{}nd ges att kopiera denna manual och distribuera kopiorna, -under f\"{o}ruts\"{a}ttning att ovanst\aa{}ende copyrightnot och denna -text finns med p\aa{} alla kopior. - -\clearpage -\pagestyle{headings} -\pagenumbering{roman} - - -\c \tableofcontents - -\clearpage -\pagenumbering{arabic} - - -\node Top, Inledning, , dir -\comment node-name, next, previous, up - -\begin{menu} -* Inledning:: Vad {r LysKOM? -* Sakregister:Index: -\end{menu} - - - - -\node Inledning, Inledning, , top -\comment node-name, next, previous, up -\chapter{Inledning till LysKOM} -\cindex{Inledning till LysKOM} -\cindex{LysKOM, inledning} - -\section{Ett konferenssystem} - -... - -\subsection{Skilnader mot andra liknande system} - -\subsubsection{Usenet News} - -... -... -... - -\bibliography{referenser} - -\end{document} diff --git a/doc/mall.latexinfo b/doc/mall.latexinfo deleted file mode 100644 index 69efea67c..000000000 --- a/doc/mall.latexinfo +++ /dev/null @@ -1,77 +0,0 @@ -\documentstyle[12pt,latexinfo,lyskom]{report} \c -*-latexinfo-*- -\pagestyle{empty} - -\begin{document} - - -\newindex{cp} -\newindex{fn} - -\title{dbck --- Automatic LysKOM Database Integrity Checkprogram\\} - -\sp 3 - -\author{Per Cederqvist\\ - Lysator\\ - ceder@lysator.liu.se} - - -\date{\today} - -\maketitle -\clearpage -\vspace{0pt plus 1filll} -Copyright \copyright{} 1990, 1991 Lysator - -\sp{2} - -This document describes... - -\sp{6} -Tillst\aa{}nd ges att kopiera denna manual och distribuera kopiorna, -under f\"{o}ruts\"{a}ttning att ovanst\aa{}ende copyrightnot och denna -text finns med p\aa{} alla kopior. - -\clearpage -\pagestyle{headings} -\pagenumbering{roman} - - -\tableofcontents - -\clearpage -\pagenumbering{arabic} - -\setfilename{dbck.info} - -\begin{ifinfo} -Copyright \copyright 1990, 1991 Lysator -\end{ifinfo} - -\node Top, dbck, (dir), (dir) -\comment node-name, next, previous, up - -\begin{menu} -* Inledning:: Vad {r LysKOM? -* Sakregister:Index: -\end{menu} - - - - -\node Inledning, Inledning, , top -\comment node-name, next, previous, up -\chapter{Inledning till LysKOM} -\cindex{Inledning till LysKOM} -\cindex{LysKOM, inledning} - -\section{Ett konferenssystem} - -... - -\subsection{Skilnader mot andra liknande system} - -\subsubsection{Usenet News} - - -\end{document} diff --git a/doc/misc_items b/doc/misc_items deleted file mode 100644 index 9bfdc5bd5..000000000 --- a/doc/misc_items +++ /dev/null @@ -1,43 +0,0 @@ -File created by ceder. - -Medlemmarna i enumen Info_type {r av tv} olika typer. - -1) recpt, cc_recpt, comm_to, comm_in, footn_to, footn_in - - Dessa sex {r de grundl{ggande typerna. - -2) loc_no, rec_time, sent_by, sent_at - - Dessa inneh}ller extra information om en viss Info_type ur grupp 1. - Servern sk|ter sj{lv om att de skapas och tas bort p} r{tt s{tt. - -Nedanst}ende tabell visar exakt hur de olika Misc_items kan finnas. - -Mottagare: - recpt Obligatorisk - loc_no Obligatorisk - rec_time Fylls i n{r mottagaren l{ser brevet. - sent_by Om s{nt i efterhand av n}gon annan {n f|rfattaren. - sent_at Om s{nt i efterhand. - -CC_Mottagare: (f}r ej kommentarer till detta inl{gg) - cc_recpt Obligatorisk - loc_no Obligatorisk - rec_time Fylls i n{r mottagaren l{ser brevet. - sent_by Om s{nt i efterhand av n}gon annan {n f|rfattaren. - sent_at Om s{nt i efterhand. - -Kommentar till: - comm_to Obligatorisk - sent_by Om s{nt i efterhand av n}gon annan {n f|rfattaren. - sent_at Om s{nt i efterhand. - -Fotnot till: - foot_to Obligatorisk - sent_at Om s{nt i efterhand. - -Kommenteras i: - comm_in Obligatorisk - -Fotnot i: - foot_in Obligatorisk \ No newline at end of file diff --git a/doc/misc_items_a b/doc/misc_items_a deleted file mode 100644 index d8644b893..000000000 --- a/doc/misc_items_a +++ /dev/null @@ -1,94 +0,0 @@ -File created by ceder. - -This file describes protocol a (not protocol A). - -The members in the Info_type enum is of two different types. They can -be grouped acording to a "grammar" that is defined in this file. - - -1) recpt, cc_recpt, comm_to, comm_in, footn_to, footn_in, x_author - - These are the seven basic types. - - -2) loc_no, rec_time, sent_by, sent_at, x_text, x_person, x_recpt, x_system - - These gives some additional info about the Info_type from group 1. - - - -Syntax of the grammar. - -The grammar looks like this: - -Recipient: - info_type comment - -info_type is one of the elements in the Info_type enum. Comment tells -the meaning of the info_type in this context. The following abbrevs -are used in the comment: - - AP Always Present. - ABS Added By Server. The client is not allowed to give - this info_type here. - IBS Ignored By Server. As ABS, but the client is allowed - to send a misc_item of this type that the server will - ignore. - -External author: (Meaning that the text originated somewhere else.) - x_author AP. - x_system AP. - -Recipient: - recpt AP. - loc_no IBS/AP. - x_recpt If external recipient. - x_system If external recipient. - rec_time ABS when the recipient marks the text as read. - sent_by ABS if the text is sent to the recipient by - someone else than the author. - x_person Sender, if external, and not author. - x_system If x_person is present. - sent_at ABS if it was sent after it was created. - -CC_Recipient: (should be omitted from comments to this text). - cc_recpt AP. - loc_no IBS/AP. - x_recpt If external recipient. - x_system If external recipient. - rec_time ABS when the recipient marks the text as read. - sent_by ABS if the text is sent to the recipient by - someone else than the author. - x_person Sender, if external, and not author. - x_system If x_person is present. - sent_at ABS if it was sent after it was created. - -Kommentar till: - comm_to AP. - x_text If external origin of text. - x_system If external origin of text. - sent_by ABS if the comment link is added by someone else - than the author. - x_person Sender, if external, and not author. - x_system If x_person is present. - sent_at Om s{nt i efterhand. - -Fotnot till: - foot_to AP. - x_text If external origin of text. - x_system If external origin of text. - sent_by ABS if the comment link is added by someone else - than the author. - x_person Sender, if external, and not author. - x_system If x_person is present. - sent_at Om s{nt i efterhand. - -Kommenteras i: - comm_in AP. - x_text If external origin of text. - x_system If external origin of text. - -Fotnot i: - foot_in AP - x_text If external origin of text. - x_system If external origin of text. diff --git a/doc/prot-a-tankar b/doc/prot-a-tankar deleted file mode 100644 index de2fa594a..000000000 --- a/doc/prot-a-tankar +++ /dev/null @@ -1,9 +0,0 @@ -Protokoll a, ej A. - -Ett anrop f|r att se vart personliga kommentarer ska g}: - -get_personal_id(x_author, x_system) -> Misc_list: - - Recpt AP - X-recpt Maybe - X-system Maybe diff --git a/doc/prot_a b/doc/prot_a deleted file mode 100644 index 925db0ea4..000000000 --- a/doc/prot_a +++ /dev/null @@ -1,42 +0,0 @@ -THIS FILE CONTAINS LOOSE THOUGHTS! DON'T TAKE THIS TOO SERIOUSLY! - -Externa saker: - -F|rfattare: - - - Personligt: sl} upp i databas f|r att se vart kommentar skall. - - -Mottagare: - - - - -Fall 1) Mailinglista importeras. - -X-author 15 -X-origin - -Fall 2) Kommentar p} mailinglista. - -L{gg in i m|tet. Gateway-klienten uppt{cker ett nytt inl{gg utan X-author, och skickar iv{g det till mailinglistan/newsgruppen. - -Fall 3) Personligt p} mailinglista. - -G|r lookup(X-author, kommentarm|te) och f} ett m|te d{r man ska skriva -kommentaren (typiskt RFC-800-m|tet). - -Fall 4) Eko p} ekom|ten. - -"Trivialt". - -Fall 5) Kommentar p} ekom|te. - -"Trivialt". - -Fall 6) Personligt p} ekom|te. - -Som fall 3, men resultatet blir typiskt echo-mail-m|tet. Den gw-klient -som l{ser det m|tet g|r lookup(X-server) och f}r en port att koppla -sig till. diff --git a/doc/security-levels.txt b/doc/security-levels.txt deleted file mode 100644 index bca7905ba..000000000 --- a/doc/security-levels.txt +++ /dev/null @@ -1,53 +0,0 @@ -Skriv hit allt som priviligerade kan g�ra! -Siffrorna anger vilken enable-level man m�ste vara p� f�r att f� g�ra saken. - -(Denna fil kanske inte st�mmer med verkligheten. Tyv�rr. Men om Bellman f�r - sin vilja igenom (och det har jag inget emot) s� ska det ju �nd� g�ras om.) - -wheel -0 Kan alltid logga in. -6 Kan s�tta alla Priv_bits f�r alla personer. -7 Kan s�tta password f�r alla personer. -8 �r organisat�r (supervisor) f�r allt. -10 Kan l�sa alla texter. - -admin -2 Kan l�sa status f�r hemliga m�ten/personer. -2 Kan l�sa de skyddade delarna av statusen. -2 Kan l�sa hela text_statusen, �ven hemliga mottagare. -1 Kan l�sa last_login. -4 Kan addera/subtrahera medlemmar. -4 Kan addera/subtrahera mottagare till texter. -5 Kan s�tta superm�te. -5 Kan radera texter. -6 Kan s�tta administrat�r. -3 Kan byta namn p� alla. -1 Kan st�nga av servern. -1 Kan s�tta motd_of_kom. - -statistic -2 Kan l�sa statistikdelarna av Person-structen, �ven om de �r skyddade. - -create_conf (default on) -0 Kan skapa m�ten - -create_pers (default on) -0 Kan skapa personer - -extern_gw (default off, endast protokoll a.) -0 Kan skapa texter med X-author. -********************************************************************* - -Vilka privilegier vill vi ha? - -- L�sa valfria texter -- Alltid f� logga in -- L�sa status f�r valfria texter -- �ndra mottagare f�r valfria texter p� godtyckligt s�tt -- Flytta texter som man f�r l�sa -- F�r �ndra div status f�r godtyckliga m�ten -- F�r �ndra l�senord f�r godtycklig person -- F�r �ndra div status f�r godtycklig person, dock ej priv-bittar -- S�tta priv-bittar -- Skapa personer (default on) -- Skapa m�ten (default on) diff --git a/doc/server-async.extend b/doc/server-async.extend deleted file mode 100644 index 1327cccbe..000000000 --- a/doc/server-async.extend +++ /dev/null @@ -1,21 +0,0 @@ -HUR MAN L�GGER TILL ETT ASYNKRONT MEDDELANDE I A-SERVERN - -1) async.h: l�gg till meddelandet i typedef enum { ... } Async. Se - till att ay_dummy_last f�r en h�gre siffra �n n�got annat - meddelande. Om meddelandet skall skickas per default, stoppa in det - i ASYNC_DEFAULT_MESSAGES. - -2) prot-a-send-async.[hc]: skriv en funktion som skickar iv�g - meddelandet. Gl�m inte att se till att andra argumentet till - async_header verkligen �r antalet element som skickas! (Reglerna - f�r hur man r�knar ut det �r lite skumma. Se s�rskilt upp med - arrayer och structar.) - -4) send-async.[hc]: skriv en funktion som skickar iv�g meddelandet - till l�mpliga clienter. Vissa meddelanden skickas till n�stan alla - klienter. I s� fall ska funktionen loopa �ver alla klienter (se - koden f�r exempel). I andra fall skall meddelandet bara till en - klient. I de fallen ska funktionen �ven ta en (Isc_clientinfo *) - som argument. - -4) Se till att skicka meddelandet p� l�mpliga st�llen. diff --git a/doc/server-config.extend b/doc/server-config.extend deleted file mode 100644 index b1c21cf52..000000000 --- a/doc/server-config.extend +++ /dev/null @@ -1,22 +0,0 @@ --*- text -*- - -How to add more configuration to the server -------------------------------------------- - -1. Think twice about what it really is you want to configure. Find a - good, descriptive name for it. - -2. Think twice about which values the parameter can be set to. - Integers? Booleans? - -3. Document it in src/doc/man/lyskomd.8. - -4. Add a field to in in struct kom_par (in src/server/param.h). - -5. Add it to parameters[] in src/server/server-config.c. See - src/server/conf-file.h (and maybe src/server/conf-file.c). - -6. Make sure the parameter is used instead of any previous hard-coded - value. Make sure that dbck can cope with it. - -That's all there is to it! diff --git a/doc/server.extend b/doc/server.extend deleted file mode 100644 index 01b536b76..000000000 --- a/doc/server.extend +++ /dev/null @@ -1,60 +0,0 @@ -ATT L�GGA TILL EN NY FUNKTION - -Alla filnamn i denna fil anges relativt $TOPDIR/src. - -F�r att l�gga till en ny funktion beh�ver f�ljande �ndringar g�ras: -(Det ser kanske mycket ut, men i praktiken s� �r det inte s� jobbigt) - - 1) Deklarera funktionen i include/services.h. - - 2) Deklarera funktionen i server/fncdef.txt. L�gg alltid nya funktioner - sist s� att gamla klienter fortfarande fungerar. - - 2a) Om funktionen tar en inparameter av en typ som inte finns - n�mnd i fncdef.txt s� m�ste �ndringar ske i - - server/call-switch.awk - server/prot-a-parse-arg-c.awk - server/connections.h Definitionen av Connection ska - ut�kas med ett f�lt d�r man kan - lagra det parseade f�ltet. - server/connections.c G�r free p� f�ltet i free_parsed(). - server/internal-connections.c - Initiera f�ltet i init_connection(). - server/isc-parse.c Skriv en funktion f�r att parsea. - server/isc-parse.h - - 2b) Om funktionen tar f�r m�nga inparametrar av typen num, - string eller c_string s� m�ste man �ndra - - server/connections.h Definitionen av Connection - - 2c) Om funktionen har en utparameter av en annan typ �n de som redan - finns: - - server/prot-a.c: L�gg till en rad i switchen i prot_a_reply. - server/connections.h: L�gg till typen i Res_type och - Result_holder. - server/prot-a-output.c: skriv en funktion f�r att skriva - ut ett objekt. - server/prot-a-output.h - - 3) Skriv funktionen i l�mplig fil i server-direktoryt. De som finns att - v�lja p� n�r detta skrivs �r - - admin.c, conference.c, membership.c, person.c, session.c, text.c, - regex-match.c - - 4) L�gg till funktionsnamnet i prot_a_is_legal_fnc() i server/prot-a.c. - - 5) Kompilera om servern med 'make' i server/. - - 6) [utg�r] - - 7) [utg�r] - - 8) [utg�r] - - 9) Implementera de nya kommandona i klienterna. -I protokoll B kommer det (om lacgen n�gonsin blir klart) att bli -mycket enklare. diff --git a/doc/skeleton.doc b/doc/skeleton.doc deleted file mode 100644 index fcd4fa1ab..000000000 --- a/doc/skeleton.doc +++ /dev/null @@ -1,13 +0,0 @@ - - - LysKOM-Projektet - -------------------------------- - Titel p} dokumentet - -------------------------------- - av Nisse Gandhi - <nisgan@lysator.liu.se> - 1 april 1990 - - - -H{r b|rjar texten... diff --git a/doc/what-is-unread.swe b/doc/what-is-unread.swe deleted file mode 100644 index 80565b034..000000000 --- a/doc/what-is-unread.swe +++ /dev/null @@ -1,145 +0,0 @@ -This swedish text describes how the client knows which texts the user -has not yet read. It is extracted from the LysKOM database that runs -at lysator.liu.se. -------------------------------------------------------------------- - - -102868 1991-09-07 20:40 /132 rader/ ceder (Per Cederqvist Lysator) -Kommentar till text 102846 av Jonas S Karlsson (@Link ping enl CSN) -Mottagare: LysKOM internals <1804> -Markerad av dig och 2 andra. -[rende: Hur man vet vad som {r ol{st. ------------------------------------------------------------- -Varje person har en lista |ver vilka m|ten han {r med i. F|r varje -m|te han {r med i lagras i en struct som vi kallar Membership: - - * m|tesnumret - * prioriteten p} m|tet - * n{r man senast l{ste en text i m|tet (markerade en text i - m|tet som l{st) - * vilka texter man har l{st (lokala m|tesnummer) - Just nu lagras det som - - Local_text_no last_text_read; - u_short no_of_read_texts; - Local_text_no *read_texts; - - vilket inneb{r att man har l{st alla texter fram till och - med last_text_read, och dessutom alla texter som finns i den - dynamiskt allokerade arrayen read_texts (som inneh}ller - no_of_read_texts texter). - -query_read_texts tar som argument en person och ett m|te (som -eventuellt kan vara en brevl}da) och returnerar den personens -Membership f|r just det m|tet. Till protokoll B kommer vi att d|pa om -funktionen till get_membership. - -> 102846 1991-09-07 17:05 /16 rader/ Jonas S Karlsson (@Link ping enl CSN) -> Mottagare: LysKOM internals <1801> -> [rende: Protokollet fr{ga... - -102846 {r ett globalt textnummer. Vi anv{nder typen Text_no f|r att -lagra och hantera s}dana nummer. 1801 {r ett lokalt nummer f|r m|tet -LysKOM internals. S}dana nummer lagras i en Local_text_no. (B}de -Text_no och Local_text_no {r 32 bittar just nu). - -F|r varje m|te finns en relation MAP : Local_text_no -> Text_no. Med -anropet get_map kan man h{mta en tabell med vars hj{lp man kan g|ra den -|vers{ttningen f|r ett visst m|te. - - -get_created_texts ger en lista som inneh}ller de texter som en viss -person har skrivit. - -F|r att ta reda p} vilka m|ten man har ol{sta inl{gg i g|r man s} h{r: - -1) get_unread_confs (ditt personnummer) - -Du f}r en lista med m|tesnummer. LysKOM garanterar att du inte har -n}got ol{st i n}got annat m|te, men det kan h{nda att den ger tillbaks -n}gra m|ten som du i verkligheten inte har n}got ol{st i. - -De m|ten man f}r tillbaks {r de d{r de existerar (eller har existerat) -en text med ett h|gre lokalt textnummer {n last_text_read i ditt -Membership i m|tet i fr}ga. - -2a) G|r query_read_texts f|r alla m|ten i listan du fick i steg 1. - -2b) Samtidigt h{mtar du m|tesstatusen f|r de m|tena (med -get_conf_stat). - -3) Samla ihop alla svaren och sortera dom s} att man f}r l{sa -inl{ggen i r{tt ordning. - -4) Ta det f|rsta m|tet. J{mf|r det h|gsta lokala numret som existerar -(det kan du f} fram ur m|tesstatusen) med last_text_read i ditt -Membership. Om det visar sig att det finns texter du inte har l{st -m}ste du g|ra ett get_map f|r att ta reda p} vilket globalt textnummer -de ol{sta texterna har. - -5) Sl} upp varje lokalt textnummer som du inte har l{st i mappen. Du -f}r ett Text_no. Om du f}r en nolla inneb{r det att den text som hade -det numret har raderats eller subtraherats fr}n m|tet. Ignorera det -lokala numret och tag n{sta. - -6) N{r du f}r ett textnummer som inte {r noll h{mtar du textstatusen -och textmassan (sj{lva texten) med get_text_stat och get_text, och -visar den p} sk{rmen. N{r anv{ndaren har l{st klart texten talar du om -det f|r servern med mark_as_read (som tar ett m|tesnummer och ett -Local_text_no som argument och uppdaterar ditt Membership f|r det -m|tet). Om texten har flera mottagare som du {r medlem i ska du anropa -mark_as_read en g}ng f|r varje mottagare. - -Repetera steg 5 och 6 tills du har l{st ut m|tet. Se till att du -f|ljer kommentartr{det, om anv{ndaren vill det. - -Repetera steg 4 tills allt {r utl{st. - -Visa alla markerade. - -Se tiden. -================================================================= - -S} g}r det till, grovt sett. Saker och ting kompliceras av att det -hela tiden skrivs nya texter. Servern skickar ut ett asynkront -meddelande n{r en ny text skapas (i ett m|te som man {r medlem i). I -meddelandet finns hela textstatusen (s} att man slipper h{mta den). - -En annan grej som g|r det hela komplicerat {r att man g{rna vill att -klienten ska h{mta saker i f|rv{g n{r man inte har n}got annat att -g|ra. Man vill att klienten inte ska h{mta samma information mer {n en -g}ng. Man vill f} upp den f|rsta texten s} snabbt som m|jligt. Man -vill kunna g|ra Lista Nyheter s} snabbt som m|jligt. Det finns m}nga -saker man kan optimera p} olika s{tt. - -Elispklienten g|r inte riktigt som jag har beskrivit det p} alla -st{llen, men resultatet blir i princip det samma. En del av anropen -(t ex get_unread_confs) har vi inf|rt i efterhand f|r att vi m{rkte -att det var n|dv{ndigt f|r att f} saker och ting att g} n}gorlunda -snabbt. - -Vi har medvetet valt att g|ra s} mycket jobb som m|jligt i klienten, -och s} lite jobb som m|jligt i servern. Nu, n{r det blev s} att -klienten {r skriven i elisp, s} skulle vi nog ha f}tt ett snabbare -system (s{rskilt uppstarten) om servern varit mer intelligent och valt -i vilken ordning texter ska visas. Systemet {r designat med m}let att -det inte ska bli l}ngsammare {ven om m}nga klienter kopplar upp sig -samtidigt, och det m}let har vi nog n}tt. (Att det kan g} l}ngsamt n{r -5-6 personer k|r sin elispklient p} lysator.liu.se beror inte p} -svarstiderna fr}n LysKOM-servern, utan p} att emacsarna blir -l}ngsamma. De som k|r fr}n en obelastad maskin samtidigt m{rker inte -att det g}r l}ngsamt (skryt, skryt:-)). (Nej, det finns inga m{tningar -som bekr{ftar det h{r - men jag t{nker m{ta lite responstider senare i -h|st). - -Med en smart klient skriven i c kommer LysKOM att bli snabbt. Om -c-klienterna k|rs p} varsin maskin (var och en har sin egen -arbetsstation) tror jag att systemet kommer att klara "tillr{ckligt" -m}nga anv{ndare. (LysKOM {r ju ett lokalt media. Om hela v{rlden k|rde -p} samma LysKOM-server i st{llet f|r att skriva news skulle det bli -olidligt att l{sa LysKOM {ven om man bortser fr}n responstider...) - -P}peka g{rna eventuella oklarheter i den h{r texten. Jag t{nker skicka -med den bland dokumentationen vi har i serverreleasen som vi snart -g|r, s} jag vill att texten ska vara begriplig... -(102868) ----------------------------------- -- GitLab