lyskomd.texi 115 KB
 David Byers committed Dec 30, 1998 1 \input texinfo  Per Cederqvist committed Dec 18, 2005 2 @c $Id: lyskomd.texi,v 1.81 2005/12/18 22:18:11 ceder Exp$  David Byers committed Dec 30, 1998 3 4 @c %**start of header @setfilename lyskomd.info  Per Cederqvist committed Apr 03, 1999 5 6 @include version.texi @settitle lyskomd @value{VERSION} Reference Manual  David Byers committed Dec 30, 1998 7 8 9 @setchapternewpage odd @c %**end of header  David Byers committed May 21, 1999 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 @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  David Byers committed Dec 30, 1998 27 @ifinfo  Per Cederqvist committed Apr 03, 1999 28 29 This is the reference manual for the lyskomd LysKOM server version @value{VERSION}.  David Byers committed Dec 30, 1998 30   Per Cederqvist committed Dec 18, 2005 31 Copyright @copyright{} 1995-2005 Lysator ACS.  David Byers committed Dec 30, 1998 32 33 34 35 36 37 38 39 40 41 42 43 44  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 * lyskomd: (lyskomd). lyskomd reference manual. @end direntry @titlepage @sp 10  David Byers committed Jan 14, 1999 45 @title lyskomd Reference Manual  David Byers committed Dec 30, 1998 46 @sp 2  Per Cederqvist committed Apr 03, 1999 47 @subtitle Server version @value{VERSION}  David Byers committed Dec 30, 1998 48 49 50 51 52 @sp 2 @author by the lyskomd developers @page @vskip 0pt plus 1filll  Per Cederqvist committed Dec 18, 2005 53 Copyright @copyright{} 1995-2005 Lysator ACS  David Byers committed Dec 30, 1998 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69  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  Per Cederqvist committed May 23, 1999 70 @node Top  David Byers committed Dec 30, 1998 71 72 73 @top lyskomd lyskomd is a server for the LysKOM conferencing system. This info file  Per Cederqvist committed Apr 03, 1999 74 documents version @value{VERSION} of lyskomd.  David Byers committed Dec 30, 1998 75 76 77 78 79 80 81  @menu * Copying:: lyskomd is free software. * Overview:: Overview of LysKOM. * Installation:: How to install lyskomd. * Configuration:: How to configure lyskomd. * Running lyskomd:: How to run lyskomd.  Per Cederqvist committed May 16, 1999 82 83 * Invoking updateLysKOM:: How to run updateLysKOM. * Invoking komrunning:: How to run komrunning.  Per Cederqvist committed Oct 03, 2003 84 * Invoking checkkomspace:: How to run checkkomspace.  David Byers committed Dec 30, 1998 85 * Administration:: Administering a LysKOM server.  David Byers committed May 18, 1999 86 87 * Bugs:: Known bugs in lyskomd. * DBCK Reference:: Checking and repairing the database.  Per Cederqvist committed Nov 19, 2001 88 * splitkomdb:: How to backup the database.  David Byers committed May 18, 1999 89 * Hacking:: Notes for server developers.  David Byers committed May 21, 1999 90 * lyskomd Database Specification::  David Byers committed Dec 30, 1998 91 92 93 94 @end menu @end ifinfo  Per Cederqvist committed May 23, 1999 95 @node Copying  David Byers committed Dec 30, 1998 96 97 @chapter Copying  Per Cederqvist committed May 23, 1999 98 99 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  David Byers committed Dec 30, 1998 100 101 102 contains the text of the license.  Per Cederqvist committed May 23, 1999 103 @node Overview  David Byers committed Dec 30, 1998 104 105 106 107 108 109 @chapter Overview LysKOM is a conferencing system@footnote{Or in modern terms, enabling technology for Computer-Supported Cooperative Work (CSCW).}. Similar systems were QZ-KOM and PortaCOM@footnote{Also known as PottaKOM'' and BortaKOM''.}. The LysKOM system is copyrighted by Lysator Academic  Per Cederqvist committed May 23, 1999 110 111 Computing Society and distributed under conditions of the GNU General Public License version 2. LysKOM and its documentation is provided as is'' without  David Byers committed Dec 30, 1998 112 113 warranty of any kind.  Per Cederqvist committed Apr 03, 1999 114 115 This reference manual documents version @value{VERSION} of the lyskomd LysKOM server. The lyskomd server is the work of several people. The main  David Byers committed Dec 30, 1998 116 contributors have been  Per Cederqvist committed May 23, 1999 117 118 119 Per Cederqvist @email{ceder@@lysator.liu.se}, Inge Wallin @email{inge@@lysator.liu.se}, Thomas Bellman @email{bellman@@lysator.liu.se},  Per Cederqvist committed Apr 03, 1999 120 121 David Byers @email{byers@@lysator.liu.se} and Peter Eriksson @email{pen@@lysator.liu.se}.  David Byers committed Dec 30, 1998 122 123 124 125 126 127 128 129 130  @section History In 1990, Per Cederqvist @email{ceder@@lysator.liu.se} and Peter Eriksson @email{pen@@lysator.liu.se} and a few other persons started to write the server. It was operational in the summer of 1990, even though the members of Lysator discovered a thing called MUD. We started using RCS on 20 May 1991. The first release was made on 16 Sept 1991. Around that  Per Cederqvist committed May 23, 1999 131 time we switched from RCS to CVS to handle our source code.  David Byers committed Dec 30, 1998 132 133 134   Per Cederqvist committed May 23, 1999 135 @node Installation  David Byers committed Dec 30, 1998 136 137 @chapter Installation  Per Cederqvist committed May 23, 1999 138 139 140 141 Instructions for compiling and installing lyskomd are in the files @file{README} and @file{INSTALL}, located in the top level of the lyskomd distribution. Installation should be straightforward on most platforms.  David Byers committed Dec 30, 1998 142 143   Per Cederqvist committed May 23, 1999 144 @node Configuration  David Byers committed Dec 30, 1998 145 146 147 148 @chapter Configuration There are two configuration files for lyskomd. One defines the server options and the other defines aux-item types @ref{(protocol-a)The  Per Cederqvist committed May 23, 1999 149 Aux-Item List,The Aux-Item List}.  David Byers committed Dec 30, 1998 150 151 152 153 154 155 156  @menu * Server Configuration File:: The server configuration file. * Aux-Item Definition File:: The aux-item definition file. @end menu  Per Cederqvist committed May 23, 1999 157 @node Server Configuration File  David Byers committed Dec 30, 1998 158 159 160 @section Server Configuration File The server reads its configuration from a configuration file. The  Per Cederqvist committed Apr 03, 1999 161 default configuration file is @file{/usr/lyskom/etc/config}. The  David Byers committed Dec 30, 1998 162 163 164 165 166 location of the configuration file can be changed at run-time by supplying an argument to lyskomd. The configuration file is line oriented. Each line consists of a parameter name followed by a colon, and the value of the parameter.  David Byers committed May 23, 1999 167 Empty lines and lines whose first non-blank character is a @samp{#} are  David Byers committed Dec 30, 1998 168 169 170 171 172 173 174 ignored. @menu * Parameter Types:: Types of configuration parameters. * Parameters:: Valid configuration parameters. @end menu  Per Cederqvist committed May 23, 1999 175 @node Parameter Types  David Byers committed Dec 30, 1998 176 177 @subsection Parameter Types  Per Cederqvist committed Feb 15, 2002 178 Every parameter has a type. The standard types are:  David Byers committed Dec 30, 1998 179 180 181 182 183 184 185 186  @table @code @item bool The parameter can be true or false. Legal values are @code{on}, @code{true}, @code{yes} and @code{1} for true and @code{off}, @code{false}, @code{no} and @code{0} for false. @item locale-name  Per Cederqvist committed May 23, 1999 187 The parameter is a locale name. The value must be a legal locale name of  David Byers committed Dec 30, 1998 188 189 190 191 the system where lyskomd is running. @item path The parameter is a path name. The value must be a legal path on the  Per Cederqvist committed Apr 03, 1999 192 system where lyskomd is running. Most paths you can specify can be  Per Cederqvist committed May 23, 1999 193 either absolute paths (if they begin with a @samp{/}) or paths relative  Per Cederqvist committed Dec 21, 2001 194 195 to the installation prefix which is specified at compile time and can be overridden by the @code{Prefix:} parameter in the configuration file.  David Byers committed Dec 30, 1998 196 197 198  @item portname The parameter is a TCP/IP port. It can be a symbolic port name  Per Cederqvist committed Apr 03, 1999 199 (traditionally looked up in @file{/etc/services}) or a port number.  David Byers committed Dec 30, 1998 200 201 202  @item int The parameter is a number of some sort. It can be a conference number,  Per Cederqvist committed Jul 13, 2003 203 text number or perhaps something else.  David Byers committed Dec 30, 1998 204   Per Cederqvist committed Aug 11, 2002 205 206 207 208 209 @item double The parameter is a floating point number. Any syntax that the C function @code{strtod} accepts is OK. Examples of truly portable values: @samp{1} or @samp{1.3}.  Per Cederqvist committed Jul 13, 2003 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 @item timeval The parameter is a time period. It consists of a floating point number (in the same format as for parameters of type @code{double}), optionally followed by optional whitespace and a suffix. If no suffix is specified, it defaults to the suffix mentioned in the description of the parameter. Valid suffixes includes: @itemize @item seconds @item second @item sec @item s @item minutes @item minute @item min @item hours @item hour @item h @item days @item day @item d @item milliseconds @item millisecond @item m @item microseconds @item microsecond @item u @end itemize  David Byers committed Dec 30, 1998 241 242 @end table  Per Cederqvist committed Feb 15, 2002 243 244 A few parameters have ad-hoc types, that are used for a single parameter. They are documented in the description of that parameter.  David Byers committed Dec 30, 1998 245   Per Cederqvist committed May 23, 1999 246 @node Parameters  David Byers committed Dec 30, 1998 247 248 249 250 @subsection Parameters @table @code  David Byers committed May 12, 1999 251 252 253 254 255 256 257 258 259 260 @item Max conferences: @var{int} The maximum number of conferences possible in the server. This number must be larger than the number of conferences in the database. This parameter is required. There is no default. @item Max texts: @var{int} The maximum number of texts possible in the server. This number must be larger than the number of texts in the database. This parameter is required. There is no default.  Per Cederqvist committed Apr 03, 1999 261 262 @item Locale: @var{string} Use @var{string} as the locale to run in. This parameter is only  David Byers committed Dec 30, 1998 263 264 265 266 available om systems which support the @code{setlocale} call. If this parameter is not set, no call to @code{setlocale} will be made. The default is unset.  Per Cederqvist committed Apr 03, 1999 267 @item Force ISO 8859-1: @var{bool}  David Byers committed Dec 30, 1998 268 269 This option is provided for those with dysfunctional computers that cannot handle @code{setlocale} properly. If this is set, lyskomd will  Per Cederqvist committed Apr 03, 1999 270 handle texts according to the ISO 8859-1 (latin1) alphabet. Default  David Byers committed Dec 30, 1998 271 272 is off.  Per Cederqvist committed Apr 03, 1999 273 @item Prefix: @var{path}  Per Cederqvist committed Dec 21, 2001 274 275 Specify the installation prefix. All relative filenames that the server uses are interpreted relative to this directory. The default  Per Cederqvist committed Aug 16, 2003 276 277 278 value of this parameter is set at compile time. The default is @file{/usr/lyskom}, but it can be changed by the @samp{--prefix} argument of @samp{configure} at compile time.  David Byers committed Dec 30, 1998 279   Per Cederqvist committed Apr 03, 1999 280 @item Send async: @var{bool}  David Byers committed Dec 30, 1998 281 282 283 284 Do not send any non-requested messages. This disables the sending of messages about events in the server to all connections. Use of this parameter is not recommended. Default is on.  Per Cederqvist committed Apr 24, 2006 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 @item Listen: @var{portname} @itemx Listen: @var{hostname}:@var{portname} Specify which IP number and port the server should use when listening for new clients. @var{hostname} may be a FQDN (such as @samp{kom.lysator.liu.se}), an IPv4 address (such as @samp{10.0.0.1}), or an IPv6 address enclosed in brackets (such as @samp{[2001:db8::a00:20ff:fea7:ccea]}. If a FQDN resolves to several IP addresses, it is undefined if the server will listen to all of them or just pick one of them, so avoid that situation. If the @var{portname} is the empty string, the default value of @code{4894} will be used. The default is @code{4894} (listen to port 4894 on all interfaces). These parameters can be specified several times to cause the server to listen to many ports and/or interfaces. The default is removed if this parameter is specified at least once.  David Byers committed Dec 30, 1998 303   Per Cederqvist committed Apr 03, 1999 304 @item Presentation of conferences: @var{int}  Per Cederqvist committed May 23, 1999 305 The number of the conference where presentations should be sent.  David Byers committed Dec 30, 1998 306 307 308 309 Defaults to 1. This option is ignored in lyskomd 1.9 and later. Set this using dbck or the @ref{(protocol-a)set-info,set-info}.  Per Cederqvist committed Apr 03, 1999 310 @item Presentation of persons: @var{int}  Per Cederqvist committed May 23, 1999 311 The number of the conference where presentations should be sent.  David Byers committed Dec 30, 1998 312 313 314 Defaults to 2. This option is ignored in lyskomd 1.9 and later. Set this using dbck or the @ref{(protocol-a)set-info,set-info}.  Per Cederqvist committed Apr 03, 1999 315 @item Motd-conference: @var{int}  David Byers committed Dec 30, 1998 316 The number of the conference where "message-of-the-day" messages should  Per Cederqvist committed May 23, 1999 317 be sent. Defaults to 3. This option is ignored in lyskomd 1.9 and later.  David Byers committed Dec 30, 1998 318 319 Set this using dbck or the @ref{(protocol-a)set-info,set-info}.  Per Cederqvist committed Apr 03, 1999 320 @item News-conference: @var{int}  David Byers committed Dec 30, 1998 321 322 323 324 325 326 327 328 The number of the conference where news of interest to the readers of this LysKOM server should be written. This is typically a conference with very low traffic which everyone shoule be a member of. Clients should offer new users to join it. Defaults to 4. This option is ignored in lyskomd 1.9 and later. Set this using dbck or the @ref{(protocol-a)set-info,set-info}.  Per Cederqvist committed Apr 03, 1999 329 @item Message of the day: @var{int}  David Byers committed Dec 30, 1998 330 331 332 333 334 335 Default message-of-the-day of this server. The text will be shown automatically by conforming LysKOM clients when a user logs on. This option is ignored in lyskomd 1.9 and later. Set this using dbck or the @ref{(protocol-a)set-info,set-info}.  Per Cederqvist committed Apr 03, 1999 336 @item Garb: @var{bool}  David Byers committed Dec 30, 1998 337 338 339 Should the database be automatically purged of old texts? The default is on.  Per Cederqvist committed Apr 03, 1999 340 @item Never save: @var{bool}  Per Cederqvist committed Aug 04, 2000 341 342 Completely disables saving the database. Do not set this to @code{true} unless you really know what you're doing. The default is @code{false}.  David Byers committed Dec 30, 1998 343   Per Cederqvist committed Apr 03, 1999 344 @item Log accesses: @var{path}  David Byers committed Dec 30, 1998 345 346 347 348 This parameter can only be set if the server has been compiled with @code{LOGACCESSES} defined. It will save a trace of all activity in the database to a file, for later use in simulations et c. Compiling with @code{LOGACCESSES} slows the server down quite a lot, so it is normally  Per Cederqvist committed May 23, 1999 349 not defined.  David Byers committed Dec 30, 1998 350   Per Cederqvist committed Apr 03, 1999 351 @item Data file: @var{path}  Per Cederqvist committed Dec 21, 2001 352 353 354 The path relative to the installation prefix@footnote{The installation prefix can be specified at compile time, and overridden by the @code{Prefix:} parameter.} where part of the database is kept. The  Per Cederqvist committed Aug 16, 2003 355 default is @file{var/lyskomd/db/lyskomd-data}.  David Byers committed Dec 30, 1998 356   Per Cederqvist committed Apr 03, 1999 357 @item Backup file: @var{path}  David Byers committed Dec 30, 1998 358 The path relative to the installation prefix where a backup of the  Per Cederqvist committed Aug 16, 2003 359 360 361 database is kept. This file will always contain a complete database, but it may be a little out-of-date. Default is @file{var/lyskomd/db/lyskomd-backup}.  David Byers committed Dec 30, 1998 362   Per Cederqvist committed Apr 03, 1999 363 @item Backup file 2: @var{path}  David Byers committed Dec 30, 1998 364 365 366 The path relative to the installation prefix where a previous generation of the backup of the database is kept. This file may be needed if an error in the backup file is detected during the creation of the data  Per Cederqvist committed Aug 16, 2003 367 file. Default is @file{var/lyskomd/db/lyskomd-backup-prev}.  David Byers committed Dec 30, 1998 368   Per Cederqvist committed May 21, 1999 369 370 371 372 @item Lock file: @var{path} Name of the lock file that ensures that @code{dbck} and @code{lyskomd} never attempt to modify the database at the same time. It should always reside in the same directory as the @samp{Data file}. Default is  Per Cederqvist committed Aug 16, 2003 373 @file{var/lyskomd/db/lyskomd-lock}.  Per Cederqvist committed May 21, 1999 374   Per Cederqvist committed Apr 03, 1999 375 @item Text file: @var{path}  David Byers committed Dec 30, 1998 376 The path relative to the installation prefix where the actual texts in  Per Cederqvist committed Aug 16, 2003 377 the database are kept. Default is @file{var/lyskomd/db/lyskomd-texts}.  David Byers committed Dec 30, 1998 378   Per Cederqvist committed Apr 03, 1999 379 @item Text backup file: @var{path}  Per Cederqvist committed Aug 10, 2002 380 381 382 When @code{dbck} is run with the @samp{-g} option (@ref{Invoking dbck}, it will store the previous contents of the text file in the file specified by this option. The path is relative to the  Per Cederqvist committed Nov 19, 2001 383 installation prefix. This file is never used by @code{lyskomd}  Per Cederqvist committed Aug 16, 2003 384 itself. Default is @file{var/lyskomd/db/lyskomd-texts-backup}.  Per Cederqvist committed Nov 19, 2001 385 386 387 388 389 390 391  @item Backup export directory: @var{path} When @code{splitkomdb} is run, it will create a copy of the database in this directory. The copy will be split in a way that helps to keep incremental backups of that directory small. @xref{splitkomdb}. The path is relative to the directory specified by @code{Prefix:}. This directory is never used by @code{lyskomd} itself. Default is  Per Cederqvist committed Aug 16, 2003 392 @file{var/lyskomd/exportdb}.  David Byers committed Dec 30, 1998 393   Per Cederqvist committed Nov 05, 2002 394 395 396 397 398 399 400 401 @item Number file: @var{path} @itemx Number temp file: @var{path} Name of the file where the first unused conference and text numbers are stored. This file contains a single line. It is rewritten each time a new conference or text is created, to ensure that numbers are never reused even if the server later crashes before it has time to save the database. The information is first written to @code{Number temp file:}, and then renamed to @code{Number file:}. The path is  Per Cederqvist committed Aug 16, 2003 402 403 404 relative to the installation prefix. Default is @file{var/lyskomd/db/number.txt} and @file{var/lyskomd/db/number.tmp}, respectively. Both files must reside on the same partition.  Per Cederqvist committed Nov 05, 2002 405   Per Cederqvist committed Apr 03, 1999 406 @item Log file: @var{path}  David Byers committed Dec 30, 1998 407 The path relative to the installation prefix where log messages from  Per Cederqvist committed Aug 16, 2003 408 lyskomd are written. Default is @file{var/lyskomd.log}.  David Byers committed Dec 30, 1998 409   Per Cederqvist committed Apr 03, 1999 410 411 @item Log statistics: @var{path} Whenever lyskomd receives a SIGUSR1 it will append a timestamp and  David Byers committed Dec 30, 1998 412 413 a count of how many different atomic calls have been made in this file. The path is relative to the installation prefix. Default is  Per Cederqvist committed Aug 16, 2003 414 @file{var/lyskomd.stats}.  David Byers committed Dec 30, 1998 415   Per Cederqvist committed Apr 03, 1999 416 @item Pid file: @var{path}  David Byers committed Dec 30, 1998 417 418 419 When lyskomd is up and running it will write its pid in this file. The path is relative to the installation prefix. This file is used so the @code{updateLysKOM} script can easily find out what pid the LysKOM  Per Cederqvist committed Aug 16, 2003 420 server has. Default is @file{var/run/lyskomd.pid}.  David Byers committed Dec 30, 1998 421   Per Cederqvist committed May 16, 1999 422 423 424 This file should be removed when the computer reboots, before @code{komrunning} or @code{updateLysKOM} is run.  Per Cederqvist committed Apr 03, 1999 425 @item Memory usage file: @var{path}  David Byers committed Dec 30, 1998 426 427 When lyskomd exits normally it appends some info on its usage of memory to this file. The path is relative to the installation prefix. Almost  Per Cederqvist committed Apr 03, 1999 428 any memory leak bugs should be detectable by looking in this file.  Per Cederqvist committed Aug 16, 2003 429 Default is @file{var/lyskomd.memory}.  David Byers committed Dec 30, 1998 430   Per Cederqvist committed Apr 03, 1999 431 @item Aux-item definition file: @var{path}  David Byers committed Dec 30, 1998 432 This file defines which aux-items the server should support and how it  Kent Engström committed Oct 12, 1999 433 434 should handle them. You will find the details in @xref{Aux-Item Definition File}.  David Byers committed Dec 30, 1998 435 The path is relative to the installation prefix. Default is  Per Cederqvist committed Apr 03, 1999 436 @file{etc/aux-items.conf}.  Per Cederqvist committed Sep 06, 2000 437 This file is re-read if a @samp{SIGWINCH} singal is sent to the server.  Per Cederqvist committed Aug 19, 2003 438 439 440 441 442 443 @c FIXME (bug 1095): Remove the following warning when bug 1095 is @c fixed. @b{Warning:} If the aux-item definition file contains an error so that it cannot be parsed, the server will call @code{restart_kom()}, which will cause the server to abort without saving the database. Always test the file on a standby system first!  David Byers committed Dec 30, 1998 444   David Byers committed May 12, 1999 445 @item Core directory: @var{path}  Per Cederqvist committed May 23, 1999 446 The Directory where core dumps are written. This path is relative to the  Per Cederqvist committed Aug 16, 2003 447 installation prefix. Default is @file{var/lyskomd.cores}.  David Byers committed May 12, 1999 448   Per Cederqvist committed Aug 16, 2002 449 450 451 452 @item Connection status file: @var{path} @itemx Connection status temp file: @var{path} Where to store a status file that contains information about all connections. The status is written to the temp file and atomically  Per Cederqvist committed Jan 10, 2003 453 454 455 renamed to the status file. The path is relative to the installation prefix. Defaults are  Per Cederqvist committed Aug 16, 2003 456 457 458 @file{var/lyskomd.clients} and @file{var/lyskomd.clnt.tmp}. Both files must reside on the same file system. @xref{Files}, for information about the file format.  Per Cederqvist committed Aug 16, 2002 459   Per Cederqvist committed Apr 17, 1999 460 461 462 @item Status file: @var{path} This file is created by @code{komrunning} to indicate that lyskomd should currently not be running. When this file exists  Per Cederqvist committed Aug 12, 2003 463 @code{updateLysKOM} will send it a @samp{SIGTERM} signal, so that it  Per Cederqvist committed Aug 16, 2003 464 saves the database and dies. Default is @file{var/lyskomd/db/status}.  Per Cederqvist committed Apr 17, 1999 465   David Byers committed May 12, 1999 466 467 @item Nologin file: @var{path} If this file exists, the server will not allow any connections at all.  David Byers committed May 23, 1999 468 Default is @file{/etc/nologin}.  David Byers committed Dec 30, 1998 469   Per Cederqvist committed Jul 13, 2003 470 @item Garb busy postponement: @var{timeval}  Per Cederqvist committed Aug 29, 2003 471 472 How often should the garb run when the server is busy serving clients? Default is once every @code{50 milliseconds}.  David Byers committed Dec 30, 1998 473   Per Cederqvist committed Jul 13, 2003 474 @item Garb timeout: @var{timeval}  Per Cederqvist committed Aug 29, 2003 475 476 How long to sleep when the server is garbage-collecting texts, and has nothing else important to do. Default is @code{0 milliseconds}.  David Byers committed Dec 30, 1998 477   Per Cederqvist committed Jul 13, 2003 478 479 480 @item Sync timeout: @var{timeval} How long to sleep when lyskomd is saving its database. Defaults to @code{0 milliseconds}.  David Byers committed Dec 30, 1998 481   Per Cederqvist committed Apr 03, 1999 482 @item Permissive sync: @var{bool}  David Byers committed Dec 30, 1998 483 Turning this option on lets any session sync the LysKOM database.  Per Cederqvist committed May 23, 1999 484 Turning it off restricts the operation to LysKOM administrators. Default  David Byers committed Dec 30, 1998 485 486 is off.  Per Cederqvist committed Jul 13, 2003 487 488 489 @item Garb interval: @var{timeval} How long to wait between each garb sweep. Defaults to @code{1440 minutes}, which means that 24 hours will pass between each garb sweep.  David Byers committed Dec 30, 1998 490   Per Cederqvist committed Jul 13, 2003 491 492 @item Sync interval: @var{timeval} How long to wait between syncs. The current version of lyskomd keeps  David Byers committed Dec 30, 1998 493 changes to the database in memory until they are synced to disk. This  Per Cederqvist committed Jul 13, 2003 494 495 parameter specifies how long the server waits before attempting to dump the database. The default is @code{5 minutes}.  David Byers committed Dec 30, 1998 496   Per Cederqvist committed Jul 13, 2003 497 @item Sync retry interval: @var{timeval}  David Byers committed Dec 30, 1998 498 If anything goes wrong while trying to dump the data base (such as if  Per Cederqvist committed Jul 13, 2003 499 500 the disk is full), lyskomd will wait for this long before trying again. Default is @code{1 minute}.  David Byers committed Dec 30, 1998 501   Per Cederqvist committed Jun 19, 1999 502 503 504 505 506 507 508 @item Saved items per call: @var{int} When the server is saving the database, it does so in the background. It serves one call from a client, saves a few items to the new database file, serves another call, et c. This parameter sets the number of items (texts, conferences, persons) that are saved after each call. Default is @code{5}.  Per Cederqvist committed Jul 13, 2003 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 @item Penalty per call: @var{int} Penalty points given to a client once a call is completed. This affects the scheduling. Default is @code{10}. @item Penalty per read: @var{int} Penalty points given to a client each time a @code{read(2)} is performed on the socket connected to the client. This affects the scheduling. Default is @code{1}. @item Max penalty: @var{int} Once a client receives this many penalty points, the server will stop reading from the socket connected to the client. (Once the server becomes idle, all penalty points will be aged, so the server will soon start reading from it again.) Default is @code{100}. @item Low penalty: @var{int} Once the penalty points for a client is reduced below this setting, the server will start reading from the client again. This should be  Per Cederqvist committed Aug 14, 2003 527 lower than @code{Max penalty}. Default is @code{20}.  Per Cederqvist committed Jul 13, 2003 528   Per Cederqvist committed Aug 14, 2003 529 530 531 532 533 534 535 536 537 538 @item Default priority: @var{int} @itemx Max priority: @var{int} The default and max scheduling priority of a client. Both values must currently be set to @code{0}, which is the default. @item Default weight: @var{int} @itemx Max weight: @var{int} The default and max scheduling weight for a client. Defaults to @code{20} and @code{100}.  Per Cederqvist committed Aug 02, 2003 539 540 541 542 @item Connect timeout: @var{timeval} If the client doesn't send the initial handshake (such as @samp{A27Hceder@@stanly.lysator.liu.se}) within this time period, the client will be disconnected.  Per Cederqvist committed Aug 03, 2003 543 Default is @code{30 seconds}.  Per Cederqvist committed Aug 02, 2003 544 545 546 547 548 549 550  @item Login timeout: @var{timeval} @itemx Active timeout: @var{timeval} If nothing is sent to the client for this long, the client will be disconnected. Both asynchronous messages and replies to requests from the clients will reset the timer. The @samp{Login timout:} value is used while nobody is logged in on the session.  Per Cederqvist committed Aug 03, 2003 551 Default is @code{30 minutes} and @code{11.5 days}, respectively.  Per Cederqvist committed Aug 02, 2003 552   David Byers committed May 12, 1999 553 554 555 556 @item Max client data length: @var{int} The maxiumum allowed length for client name and version data. The default is @code{60}.  Per Cederqvist committed Apr 03, 1999 557 @item Max conference name length: @var{int}  David Byers committed Dec 30, 1998 558 559 The maximum length of conference names. The default is @code{60}.  Per Cederqvist committed Apr 03, 1999 560 @item Max password length: @var{int}  David Byers committed Dec 30, 1998 561 562 563 564 Only the first eight characters of the password are currently significant, even if this number is much larger. The default is @code{128}.  Per Cederqvist committed Apr 03, 1999 565 @item Max what am I doing length: @var{int}  David Byers committed Dec 30, 1998 566 567 568 569 The maximum length of the string permitted in the protocol A call @ref{(protocol-a)change-what-i-am-doing, change-what-i-am-doing}. The default is 60.  Per Cederqvist committed Apr 03, 1999 570 @item Max username length: @var{int}  David Byers committed Dec 30, 1998 571 572 The maximum length permitted for user names. Default is 128.  Per Cederqvist committed Apr 03, 1999 573 @item Max text length: @var{int}  David Byers committed Dec 30, 1998 574 575 The maximum length allowed for a text. The default is 131072 characters.  Per Cederqvist committed Jun 13, 1999 576 577 578 579 @item Max aux_item length: @var{int} The maximum length allowed for a single aux-item. The default is 16384 characters.  Per Cederqvist committed Apr 03, 1999 580 @item Max broadcast length: @var{int}  David Byers committed Dec 30, 1998 581 582 583 The maximum length allowed for broadcast messges. The default is 1024 characters.  Per Cederqvist committed Apr 03, 1999 584 @item Max regexp length: @var{int}  David Byers committed Dec 30, 1998 585 586 587 The maximum length allowed for regexps in various calls. The default is 1024 characters.  Per Cederqvist committed Jul 24, 2003 588 589 590 591 @item Statistic name length: @var{int} The maximum lenght allowed for the name of a measured statistics. The default is 64 characters.  Per Cederqvist committed Apr 03, 1999 592 @item Max marks per person: @var{int}  David Byers committed Dec 30, 1998 593 594 595 The maximum number of marks a person is allowed to have. The default is 2048.  Per Cederqvist committed Apr 03, 1999 596 @item Max marks per text: @var{int}  David Byers committed Dec 30, 1998 597 598 The maximum number of marks a text can have. The default is 1024.  Per Cederqvist committed Apr 03, 1999 599 @item Max recipients per text: @var{int}  David Byers committed Dec 30, 1998 600 601 The maximum number of recipients of a text. The default is 512.  Per Cederqvist committed Apr 03, 1999 602 @item Max comments per text: @var{int}  David Byers committed Dec 30, 1998 603 604 The maximum number of comments a text can have. The default is 128.  Per Cederqvist committed Apr 03, 1999 605 @item Max footnotes per text: @var{int}  David Byers committed Dec 30, 1998 606 607 The maximum number of footnotes a text can have. The default is 32.  Per Cederqvist committed Apr 03, 1999 608 @item Max links per text: @var{int}  David Byers committed May 23, 1999 609 The maximum number of misc info items that can be added to a text.  David Byers committed Dec 30, 1998 610   Per Cederqvist committed Apr 03, 1999 611 @item Max mark_as_read chunks: @var{int}  Per Cederqvist committed Aug 06, 2006 612 613 614 The maximum number of local text numbers that a client can mark as read in a single call to the mark-as-read request (number 27). The default is 128.  David Byers committed Dec 30, 1998 615   Per Cederqvist committed Apr 03, 1999 616 @item Max super_conf loop: @var{int}  Per Cederqvist committed Aug 06, 2006 617 618 619 620 621 622 623 624 625 This setting affects create-text, create-anonymous-text, create-text-old and create-anonymous-text-old. If any of the recipients has restricted who can create texts via the permitted-submitters field, the text will instead be diverted to the super conference. If that conference is also restricted, the text will be diverted to the super conference of the initial super conference. This process repeats until a conference accepts the text, but this parameter specifies the maximum number of iterations to perform.  David Byers committed Dec 30, 1998 626   Per Cederqvist committed Apr 03, 1999 627 @item Max accept_async len: @var{int}  David Byers committed Dec 30, 1998 628 629 630 Maximum length of list accepted in the accept_async call. Default is 128.  Per Cederqvist committed Apr 03, 1999 631 @item Max aux_items deleted per call: @var{int}  David Byers committed Dec 30, 1998 632 633 634 Maximum number of aux_items that can be deleted in one call. Default is 128.  Per Cederqvist committed Apr 03, 1999 635 @item Max aux_items added per call: @var{int}  Per Cederqvist committed Jun 13, 1999 636 Maximum number of aux_items that can be added at once. Default is 128.  David Byers committed Dec 30, 1998 637   Per Cederqvist committed Nov 15, 2002 638 639 640 641 @item Max read_ranges per call: @var{int} Maximum number of read_ranges that can sent in a single request. Default is 512.  Per Cederqvist committed Apr 03, 1999 642 @item Default garb nice: @var{int}  David Byers committed Dec 30, 1998 643 644 645 646 647 Each conference has a lifetime for texts written in it. The lifetime is counted in days, and can be set for each conference by the administrator of the conference. This is the default value assigned to new conferences. Default is 77 days.  Per Cederqvist committed Apr 03, 1999 648 @item Default keep commented nice: @var{int}  David Byers committed Jan 07, 1999 649 650 651 652 653 A text will not be removed if it has comments newer than a certain number of days. This number can be set for each conference. This parameter specifies the default value for that number of days. The default is 77.  Per Cederqvist committed Aug 01, 2003 654 655 656 657 658 659 660 661 662 663 664 665 @item Max client message size The maximum number of bytes that is read or written in a single system call. Defaults to 8176. (Attempts to set it to a larger value will currently only affect the input.) @item Max client transmit queue messages: @var{int} @itemx Max client transmit queue bytes: @var{int} Max number of pending data blocks (or total number of bytes) in the reply queue to a client. If there is ever more than this many data blocks in the queue the client will be disconnected. Each atomic question typically generates two data blocks. Default is 50 and 100000, respectively.  David Byers committed Dec 30, 1998 666   Per Cederqvist committed Jul 31, 2003 667 668 669 670 671 @item Stale timeout: @var{timeval} If the transmit queue of a client is full for this long, without the server being able to send anything to the client, the client will be disconnected. Default is 60 minutes.  Per Cederqvist committed Apr 03, 1999 672 @item Max simultaneous client replies: @var{int}  David Byers committed Dec 30, 1998 673 674 675 This is a performance tuning parameter of little real interest. Default is 10.  Per Cederqvist committed Apr 03, 1999 676 @item Open files: @var{int}  David Byers committed Dec 30, 1998 677 678 679 680 681 Try to persuade the operating system to allow lyskomd to have this many open file descriptors simultaneously. Each client that is connected to the server occupies one file descriptor, and lyskomd needs several file descriptors for internal purposes. Default is to not use this parameter.  Per Cederqvist committed Aug 11, 2002 682 683 684 685 686 687 688 689 690 691 692 693 694 @item Use DNS: @var{bool} The IP address of a client is looked up using DNS when it connects. Unfortunately, this lookup blocks the entire server, and it can take several minutes. You can disable DNS lookup with this parameter. Default is on. @item DNS log threshold: @var{double} If the @samp{Use DNS:} parameter is true, the server will measure the time each DNS lookup takes. If the time exceeds the specified threshold, an entry will be made in the log. The value is specified in seconds. The default value is 1.5 seconds. If your libc supports it, you can enter @code{+inf} to disable logging.  Per Cederqvist committed Apr 03, 1999 695 @item Anyone can create new persons: @var{bool}  David Byers committed Dec 30, 1998 696 697 698 If this is set, anyone can create a new person, even if he lacks special bits for doing so. Default is on.  Per Cederqvist committed Apr 03, 1999 699 @item Anyone can create new conferences: @var{bool}  David Byers committed Dec 30, 1998 700 701 702 If this is set, anyone can create a new conferences, even if he lacks special bits for doing so. Default is on.  Per Cederqvist committed Apr 03, 1999 703 @item Allow creation of persons before login: @var{bool}  David Byers committed Dec 30, 1998 704 705 706 707 708 If this is set, persons can connect the the server and create a new person without logging in. This is how new users register in open environments. If this option is off, then new persons can only be created by existing users. The default is on.  Per Cederqvist committed Apr 03, 1999 709 @item Default change name capability: @var{bool}  David Byers committed Dec 30, 1998 710 711 712 If this is set, new users are created with the ability to change their own name. Default is on.  Per Cederqvist committed Apr 03, 1999 713 @item Ident-authentication: @var{policy}  David Byers committed Dec 30, 1998 714 715 Decide how strictly the server should use the IDENT protocol. The policy can take any of three values:  Per Cederqvist committed Apr 03, 1999 716   David Byers committed Dec 30, 1998 717 718 719 720 721 722 723 724 725 726 727 728 @table @asis @item @code{off} or @code{never} Do not use the IDENT protocol. @item @code{on} or @code{try} Use it, but allow logins even if the lookup fails. @item @code{require} or @code{required} Disallow connections if the server cannot find a IDENT login name. @end table  Per Cederqvist committed Apr 03, 1999 729 @item Log login: @var{bool}  David Byers committed Dec 30, 1998 730 731 Should logins be logged to the log file? Default value is off.  Per Cederqvist committed Apr 03, 1999 732 @item Cache conference limit: @var{int}  David Byers committed Dec 30, 1998 733 734 735 736 How many conference statuses the server cache should hold in main memory. Default is 20. This parameter should be set to at least the number of expected simultaneous logins.  Per Cederqvist committed Apr 03, 1999 737 @item Cache person limit: @var{int}  David Byers committed Dec 30, 1998 738 739 740 741 How many person statuses the server cache should hold in main memory. Default is 20. This parameter should be set to at least the number of expected simultaneous logins.  Per Cederqvist committed Apr 03, 1999 742 @item Cache text_stat limit: @var{int}  David Byers committed Dec 30, 1998 743 744 745 746 How many text statuses the server cache should hold in main memory. The default is 20. This parameter should be increased on busy servers.  Per Cederqvist committed Apr 03, 1999 747 748 @item Echo: @var{string} Write @var{string} in the log when the config file is read.  David Byers committed Dec 30, 1998 749   Per Cederqvist committed Apr 03, 1999 750 @item Jubel: @var{pers_no} @var{text_no}  Per Cederqvist committed Feb 15, 2002 751 @itemx Jubel: public @var{pers_no} @var{text_no}  Per Cederqvist committed Apr 03, 1999 752 States that @var{pers_no} is not allowed to create text number  Per Cederqvist committed Feb 15, 2002 753 754 755 @var{text_no}. Default is unset. This parameter may be used multiple times. The form with the string @code{public} means that the text must have a public conference as recipient.  David Byers committed Dec 30, 1998 756   Per Cederqvist committed Apr 03, 1999 757 @item Jubel: @var{pers_no} @var{dividend} @var{remainder}  Per Cederqvist committed Feb 15, 2002 758 @item Jubel: public @var{pers_no} @var{dividend} @var{remainder}  Per Cederqvist committed Apr 03, 1999 759 760 States that @var{pers_no} is not allowed to create any text number @var{T} which meets the condition @var{T} % @var{dividend} == @var{remainder}.  Per Cederqvist committed Feb 15, 2002 761 762 763 Default is unset. This parameter may be used multiple times. The form with the string @code{public} means that the text must have a public conference as recipient.  David Byers committed Dec 30, 1998 764   Per Cederqvist committed Apr 03, 1999 765 @item Add members by invitation: @var{bool}  David Byers committed Dec 30, 1998 766 767 768 769 If this is set, then adding others as members to a conference sets the invitation bit of the membership. If this is off, the membership bit is set to whatever the caller specifies. The default is on.  Per Cederqvist committed Apr 03, 1999 770 @item Allow secret memberships: @var{bool}  David Byers committed Dec 30, 1998 771 772 773 774 If this is set, then memberships may be secret. Otherwise any attempt to create a secret membership or change an existing membership to a secret membership will fail. The default is on.  Per Cederqvist committed Apr 03, 1999 775 @item Allow reinvitations: @var{bool}  David Byers committed Dec 30, 1998 776 777 778 779 780 781 If this is set, then it is possible to set the invitation bit of a membership even after it has been cleared. If it is not set, then the invitation bit of a conference type can only be set when the membership is created. It can be cleared at any time. The default is off.  Per Cederqvist committed Apr 18, 1999 782 783 @item lyskomd path: @var{path} Path to the @code{lyskomd} binary. This is used by @code{updateLysKOM}  Per Cederqvist committed Aug 16, 2003 784 to find the right program to run. Defaults to @file{sbin/lyskomd}.  Per Cederqvist committed Apr 18, 1999 785 786  @item savecore path: @var{path}  Per Cederqvist committed Aug 16, 2003 787 788 789 790 791 792 793 Path to the @code{savecore-lyskom} program. If a file named @file{core} exists in the directory specified with @code{Core directory} when @code{updateLysKOM} is about to start @code{lyskomd}, this program will be called first. It could, for instance, move the core file so that it is available for later debugging. The script supplied by the distribution does nothing. Defaults to @file{sbin/savecore-lyskom}.  Per Cederqvist committed Apr 18, 1999 794 795 796 797 798 799 800 801 802 803 804 805 806 807  @item Normal shutdown time: @var{int} In a normal setup, @code{updateLysKOM} will be run from @code{cron} once every ten minutes or so. If it detects that it has taken @code{lyskomd} more than @var{int} minutes to shut down it will print a warning message. @item Mail after downtime: @var{int} @itemx Mail until downtime: @var{int} If @code{lyskomd} has been down for X minutes, where @code{Mail after downtime} <= X < @code{Mail until downtime}, @code{updateLysKOM} will send a mail message to the mail address found on the first line of the status file. Actually, it is the age of the status file (named with @code{Status file}) that is measured.  Per Cederqvist committed Aug 20, 2003 808 809 810 811 812 813 814 815 816 817 The defaults are 60 and 120, respectively. @item sendmail path: @var{path} Path to the @code{sendmail}-compatible program that @code{updateLysKOM} should use to send mail. This program will be invoked with a @samp{-t} option via a @samp{popen()} call. It should accept an email header, a blank line, an email body, and a terminating line consisting of a single @samp{.} on standard input. The default is found at configure time. The special value @samp{:} means that no mail will ever be sent.  Per Cederqvist committed Apr 18, 1999 818   Per Cederqvist committed Oct 03, 2003 819 820 821 822 823 824 825 826 827 828 829 830 831 @item Free space warning level: @var{double} @itemx Free space warning percent: @var{double} @itemx Free inodes warning level: @var{double} @itemx Free inodes warning percent: @var{double} @itemx Free space critical level: @var{double} @itemx Free space critical percent: @var{double} @itemx Free inodes critical level: @var{double} @itemx Free inodes critical percent: @var{double} These parameters determine when the @samp{checkkomspace} progam should consider the space to be sufficiently large. All levels are given in bytes. Specify @samp{0} if you don't want @samp{checkkomspace} to check a particular limit.  David Byers committed Dec 30, 1998 832 833 834 @end table  Per Cederqvist committed May 23, 1999 835 @node Aux-Item Definition File  David Byers committed Dec 30, 1998 836 837 838 839 840 841 @section Aux-Item Definition File The default aux-item definition file should not be changed unless it is really necessary. The need to change the definitions will probably only arise at installations used for client or server development.  Per Cederqvist committed Apr 03, 1999 842 843 The location of the aux-item definition file is specified by the @code{Aux-item definition file} option in the server configuration  Per Cederqvist committed Apr 03, 1999 844 file. The default location is @file{/usr/lyskom/etc/aux-items.conf}.  David Byers committed Dec 30, 1998 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864  @subsection Syntax of the Aux-Item Definition File The aux-item definition file contains a sequence of aux-item definitions. Each definition specifies one type of predefined aux-item: its number, name, and properties. Empty lines and all characters from a # character to the end of the line are ignored. Each entry has the following format: @example tag : name (target, target, ... ) @{ field = value; field = value; ... @} @end example  Per Cederqvist committed May 23, 1999 865 866 @var{tag} is an integer, the aux-item's tag. If a tag is defined more than once, the last definition is used.  David Byers committed Dec 30, 1998 867   Per Cederqvist committed Apr 03, 1999 868 The @var{target}s specify what kind of objects aux-items with tag @var{tag}  David Byers committed Dec 30, 1998 869 870 871 872 873 874 875 876 877 878 879 880 can be added to. Valid targets are: @table @code @item any Aux-items with the specified tag can be added to any object in the database. This is shorthand for @code{text,conference,letterbox,server}. @item text Aux-items with the specified tag can be added to texts. @item conference Aux-items with the specified tag can be added to conferences that are  David Byers committed May 23, 1999 881 @emph{not} letterboxes.  David Byers committed Dec 30, 1998 882 883 884 885  @item letterbox Aux-items with the specified tag can be added to conferences that are letterboxes.  Per Cederqvist committed Apr 03, 1999 886 887 888 889  @item server Aux-items with the specified tag can be added to the server itself.  David Byers committed Dec 30, 1998 890 891 892 893 894 895 896 897 898 899 @end table It is legal to add one of the keywords @code{create} or @code{modify} before any target except @code{server}. If @code{create} is specified, aux-items with the specified tag can only be added when an object is being created. They cannot be added later. If @code{modify} is specified, aux-items with the specified tag can only be added after an object has been created. They cannot be added when the object is being created.  Per Cederqvist committed May 23, 1999 900 Each @var{field}/@var{value} pair specifies a property of aux-items with the  David Byers committed Dec 30, 1998 901 902 903 904 905 906 907 specified tag. Most values are boolean or trillian. Legal values for either type are @code{true} and @code{false}. Boolean values have reasonable defaults; trillian values can be unset. @table @code @item author-only  David Byers committed Jun 19, 2004 908 909 910 911 912 913 914 915 Boolean, default false. When true, restricts creation of items with this tag to specific users. Items with this tag may be attached to texts only by the author of the text and supervisors of the author. Items with this tag may be attached to conferences only by supervisors of the conference. For conferences with the letterbox flag set, the person with the same number as the conference may also attach items with this tag. This flag has no effect on items being attached to the server.  David Byers committed Dec 30, 1998 916 917  @item supervisor-only  David Byers committed Jun 19, 2004 918 919 920 921 922 923 924 925 926 927 Boolean, default false. When true, restricts creation of items with this tag to specific users. Items with this tag may be attached to texts only by supervisors of the author (which does not necessarily include the author). Items with this tag may be attached to conferences (with or without the letterbox flag) only by supervisors of the conference. This flag has no effect on items being attached to the server. Aut-item types with the @code{supervisor-only} flag are primarily useful in servers where users are not their own supervisors, to add information to letterbox conferences that users themselves should be unable to alter.  David Byers committed May 12, 1999 928 929  @item system-only  Per Cederqvist committed May 23, 1999 930 Boolean, default false. When true, only the server can initiate creation  David Byers committed May 12, 1999 931 932 of items with this tag. This is normally used for items that are created automatically in response to events in the system.  David Byers committed Dec 30, 1998 933   Per Cederqvist committed May 23, 1999 934 @item permanent  Per Cederqvist committed Apr 03, 1999 935 936 937 Boolean, default false. When true, aux-items with this tag cannot be deleted once they have been created. (They will be deleted automatically when the object they are assigned to is deleted.)  David Byers committed Dec 30, 1998 938   Per Cederqvist committed Sep 03, 2006 939 @item one-per-person  David Byers committed Dec 30, 1998 940 Boolean, default false. When true, there can only be one non-deleted  Per Cederqvist committed Sep 03, 2006 941 942 item with this tag per person that creates this aux-item on the object.  David Byers committed Dec 30, 1998 943   Per Cederqvist committed Aug 12, 2003 944 945 946 947 948 @item unique-data Boolean, default false. When true, there can only be one non-deleted item with this tag that contains the same data (regardless of who creates the item).  Per Cederqvist committed Sep 22, 2001 949 950 @item owner-delete Boolean, default false. When true, the owner of the object that this  Per Cederqvist committed Sep 30, 2001 951 952 953 954 aux-item is attached to can always delete the aux-item. For a text, the owner is defined as the supervisor(s) of the author of the text. For a conference, the owner is defined as the supervisor(s) of the conference.  Per Cederqvist committed Sep 22, 2001 955   David Byers committed Dec 30, 1998 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 @item 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. @item inherit Trillian. When set, the inherit bit on new items with this tag is forced to the specified value. @item secret Trillian. When set, the secret bit on new items with this tag is forced to the specified value.  Per Cederqvist committed May 23, 1999 971 @item hide-creator  David Byers committed Dec 30, 1998 972 973 974 Trillian. When set, the hide-creator bit on new items with this tag is forced to the specified value.  Per Cederqvist committed May 23, 1999 975 @item dont-garb  David Byers committed Dec 30, 1998 976 977 978 979 980 981 982 983 984 985 Trillian. When set, the dont-garb bit on new items will be forced to the specified value. @item reserved-2 @item reserved-3 @item reserved-4 Trillian. When set, these flags force the values of the three reserved bits in the aux-item flags field. These should only be used by lyskomd developers, and then only very carefully.  Per Cederqvist committed May 23, 1999 986 @item validate  David Byers committed May 12, 1999 987 988 989  String or function, default none. When set to a string, this specifies a regexp that must match the data field in newly created items with this  Per Cederqvist committed May 23, 1999 990 tag. If the regexp fails to match, then the item will not be created.  David Byers committed May 12, 1999 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 The syntax for strings is essentially the same as the syntax used in C files. When set to a function, this specified a built-in validation function to call. The following validator functions are currently implemented: @table @code @item existing-readable-text Creation is only allowed if the item contains the number of an existing text that the item creator has permission to read. @end table  David Byers committed Dec 30, 1998 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029  @end table There are a few fields which specify actions the server is to take when something happens to aux-items with the specified tag. Each of these values is a function specification, the name of a trigger function defined in lyskomd. The syntax for functions is the name followed by an empty pair of parens. It is not possible to pass arguments to the functions yet. @table @code @item add-trigger Function to call when an item with the specified tag is added to an object. @item delete-trigger Function to call when an item with the specified tag is scheduled for deletion. @item undelete-trigger Function to call when an item with the specified tag scheduled for deletion is unscheduled. It should undo the effects of the delete trigger. @end table  David Byers committed May 12, 1999 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 The following trigger functions are currently defined: @table @code @item mark-text Increase the mark count for the text the item refers to. The item must contain the number of a text. This trigger should be combined with the existing-readable-text validation function. @item unmark-text Decrease the mark count for the text the item refers to. The item must contain the number of a text. This trigger should be combined with the existing-readable-text validation function. @item link-faq Create a faq-for-conf item linked to a faq-text item. This trigger is used exclusively for faq-text items. The item must contain the number of a text. This trigger must be combined with the existing-readable-text validation function. @end table  David Byers committed Dec 30, 1998 1052 1053   Per Cederqvist committed May 23, 1999 1054 @node Running lyskomd  David Byers committed Dec 30, 1998 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 @chapter Running lyskomd This section explains how to run lyskomd, the files it uses and how it can be controlled while running. @menu * Invoking lyskomd:: How to run lyskomd. * Signals:: How to control lyskomd with Unix signals. * Files:: Files used by lyskomd. @end menu  Per Cederqvist committed May 23, 1999 1067 @node Invoking lyskomd  David Byers committed Dec 30, 1998 1068 1069 1070 @section Invoking lyskomd @example  Per Cederqvist committed Oct 23, 2002 1071  lyskomd [-f] [-d] [@var{config-file}]  David Byers committed Dec 30, 1998 1072 1073 @end example  David Byers committed May 23, 1999 1074 The option @samp{-d} adds one to the debug level. The amount of output