ChangeLog 165 KB
Newer Older
1 2
1999-05-24  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
3 4 5 6
	Removed a newline in the log.
	* src/server/simple-cache.c (init_cache): Removed an extra newline
	in the log output.

7
	Don't lose data when converting the database.
8 9 10 11
	* src/server/ram-output.c (foutput_membership): Call
	foutput_membership_0 for output format 1.
	(foutput_membership_list): Call foutput_membership_list_0 for
	output format 1.
Per Cederqvist's avatar
Per Cederqvist committed
12 13
	* src/server/ram-output.c (foutput_text_list): Don't get stuck in
	an eternal loop.
Per Cederqvist's avatar
Per Cederqvist committed
14 15
	* src/server/dbck-cache.c (cache_sync_all): Output format 2 is
	known.
16 17 18 19 20 21 22
	* src/server/ram-parse.c (fparse_text_list): Set
	first_appendable_key when reading a Local_to_global from an
	old-style empty text-list.
	* src/server/local-to-global.c (l2g_set_first_appendable_key): New
	function.
	* src/server/local-to-global.h: Likewise.

23 24 25 26 27
1999-05-24  David Byers  <davby@ida.liu.se>

	* src/server/ram-parse.c (fparse_member_list): Initialize member
	structure before parsing it.

28
	* src/server/memory.c (init_member): New function.
29

30 31
1999-05-24  Per Cederqvist  <ceder@lysator.liu.se>

32 33 34
	Update the distributed config file.
	* run-support/config: Removed the "Mux port" line.

35 36 37
	Update the help message of dbck.
	* src/server/dbck.c (give_help): File format 2 is supported.

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
	Port to Solaris.
	* src/server/lockdb.c: Include <netdb.h>.

	Fix the anti-timetravel change.
	* src/server/dbck-cache.c (sync_output_header): Output the
	supplied state instead of hardcoding it to DIRTY.  Added a missing
	const.

	Added copyright header to the following files.
	* src/server/testsuite/config/leaks.exp: 
	* src/server/testsuite/config/prot-a.exp: 
	* src/server/testsuite/l2g.0/00.exp: 
	* src/server/testsuite/l2g.0/01.exp: 
	* src/server/testsuite/l2g.0/02.exp: 
	* src/server/testsuite/l2g.0/03.exp: 
	* src/server/testsuite/l2g.0/04.exp: 
	* src/server/testsuite/l2g.0/05.exp: 
	* src/server/testsuite/l2g.0/06.exp: 
	* src/server/testsuite/l2g.0/07.exp: 
	* src/server/testsuite/l2g.0/08.exp: 
	* src/server/testsuite/l2g.0/09.exp: 
	* src/server/testsuite/l2g.0/10.exp: 
	* src/server/testsuite/l2g.0/11.exp: 
	* src/server/testsuite/leaks.0/leaks00.exp: 
	* src/server/testsuite/leaks.0/leaks01.exp: 
	* src/server/testsuite/leaks.0/leaks02.exp: 
	* src/server/testsuite/leaks.0/leaks03.exp: 
	* src/server/testsuite/leaks.0/leaks04.exp: 
	* src/server/testsuite/leaks.0/leaks05.exp: 
	* src/server/testsuite/leaks.0/leaks06.exp: 
	* src/server/testsuite/leaks.0/leaks07.exp: 
	* src/server/testsuite/leaks.0/leaks08.exp: 
	* src/server/testsuite/leaks.0/leaks09.exp: 
	* src/server/testsuite/leaks.0/leaks10.exp: 
	* src/server/testsuite/leaks.0/leaks99.exp: 
	* src/server/testsuite/lyskomd.0/00.exp: 
	* src/server/testsuite/lyskomd.0/01.exp: 
	* src/server/testsuite/lyskomd.0/02.exp: 
	* src/server/testsuite/lyskomd.0/03.exp: 
	* src/server/testsuite/lyskomd.0/04.exp: 
	* src/server/testsuite/lyskomd.0/05.exp: 
	* src/server/testsuite/lyskomd.0/06.exp: 
	* src/server/testsuite/lyskomd.0/07.exp: 
	* src/server/testsuite/lyskomd.0/08.exp: 
	* src/server/testsuite/lyskomd.0/admin-cov.exp: 
	* src/server/testsuite/lyskomd.0/aux-items-cov.exp: 
	* src/server/testsuite/lyskomd.0/aux-items.conf: 
	* src/server/testsuite/lyskomd.0/aux-items.cov: 
	* src/server/testsuite/lyskomd.0/broken-aux-items.conf: 
	* src/server/testsuite/lyskomd.0/cache-node-cov.exp: 
	* src/server/testsuite/lyskomd.0/conf-file-cov.exp: 
	* src/server/testsuite/lyskomd.0/conference-cov.exp: 
	* src/server/testsuite/lyskomd.0/connections-cov.exp: 
	* src/server/testsuite/lyskomd.0/disk-end-of-atomic-cov.exp: 
	* src/server/testsuite/lyskomd.0/membership-cov.exp: 
	* src/server/testsuite/lyskomd.0/null.exp: 
	* src/server/testsuite/lyskomd.0/person-cov.exp: 
	* src/server/testsuite/lyskomd.0/prot-a-parse-cov.exp: 
	* src/server/testsuite/lyskomd.0/prot-a-send-async-cov.exp: 
	* src/server/testsuite/lyskomd.0/send-async-cov.exp: 
	* src/server/testsuite/lyskomd.0/session-cov.exp: 
	* src/server/testsuite/lyskomd.0/text-cov.exp: 
	* src/server/testsuite/tcpconnect.py: 
	* src/server/testsuite/test-l2g.c: 

	Release administrativa.
Per Cederqvist's avatar
Per Cederqvist committed
104 105 106 107 108 109
	* NEWS: Set the release date to 1999-05-31.
	* configure.in: Set version number to 2.0.0.
	* versions (SERVER-VERSION): 2.0.0.
	(SERVER-COMPAT-VERSION): 20000.

	Cleanup.
110
	* doc/prot-A-english.txt: File removed.
Per Cederqvist's avatar
Per Cederqvist committed
111 112 113
	* src/server/To-do: File removed.
	* src/server/Makefile.am (EXTRA_DIST): Removed To-do.

Per Cederqvist's avatar
Per Cederqvist committed
114 115 116 117 118
	Update copyright notices.
	* <all files>: update the year in the copyright notice.
	* scripts/update-copyright: Handle yearspans.
	* scripts/lyskomd-copyrights: Updated the list of files to ignore.

119
	Documentation fixes.
Per Cederqvist's avatar
Per Cederqvist committed
120 121
	* doc/Protocol-A.texi (get-collate-table): Document what short
	collate tables means.
122 123 124 125 126 127 128 129 130 131 132 133
	* doc/lyskomd.texi (Administration): komrunning now takes the
	arguments "start" and "stop".
	* HACKING: Mention the versions of bison and flex.
	* README: Updated for the release.

	Work around automake bugs.
	* src/server/testsuite/Makefile.am (noinst_DATA): Removed the
	"nodist_" prefix, which was apparently broken.
	* doc/Makefile.am (dist_noinst_DATA): Removed to work around an
	automake bug.  For now, the check for tabs is not performed
	automatically.

134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
1999-05-23  Per Cederqvist  <ceder@lysator.liu.se>

	Documentation fixes.
	* doc/Protocol-A.texi (Top): Updated for release.
	(What do I have unread): @code{@xref{}} and @code{@ref{}} don't
	work, so don't use the construct.
	
	--with-traced-allocations broke the test suite.
	* src/server/testsuite/config/unix.exp (l2g_start): Handle
	TRACED_ALLOCATIONS.
	* src/server/testsuite/test-l2g.c (main): Handle
	TRACED_ALLOCATIONS.
	* src/server/ram-smalloc.c: Comment updated.

	Update the protocol revision.
	* src/server/fncdef.txt: Whitespace fix.
	* doc/Protocol-A.texi: Removed all up, next and prev pointers
	once again.
	(Document Revision History): Specify
	tomorrow as release date.
	(Protocol Version History): Update the entry for protocol version
	10.  The status of 59=create-anonymous-text-old was changed to
	Obsolete in protocol version 10, not version 9.
	(Protocol Requests): Mark experimental calls with an "e".
	(add-member-old): Typo fixed.
	(unmark-text): This was introduced in protocol version 6, not 4.
	(set-expire): Change status to Experimental.
	(set-keep-commented): Change status to Experimental.
	(set-pers-flags): Fix markup error.

David Byers's avatar
David Byers committed
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
1999-05-22  David Byers  <davby@ida.liu.se>

	Timestamp the saved database and refuse to start if the server
	travels backwards through time:
	* doc/lyskomd.texi (Version 2): Documented new header format. 

	* db-crypt/db/lyskomd-data: Added timestamp

	* src/server/dbck-cache.c (cache_sync_all): Handle output format 2.
	(sync_output_header): New function.
	(cache_sync_all): Use sync_output_header to output file header. 

	* src/server/simple-cache.c (pre_sync): Use sync_output_header.
	(sync_output_header): New function outputs file header and
	timestamp.
	(save_one_text): Use it.
	(init_cache): Check the timestamp on the database before loading.

	* src/server/connections.c (toploop): Log a warning if time starts 
	moving backwards.

	Documentation fixes:
	* doc/Protocol-A.texi (get-membership): Fixed FIXME.

	* doc/lyskomd.texi: Fixed misplaced @code and @i markup.

	* doc/Protocol-A.texi: Fixed misplaced @code and @samp markup.


Per Cederqvist's avatar
Per Cederqvist committed
193 194 195 196 197 198 199
1999-05-23  Per Cederqvist  <ceder@lysator.liu.se>

	Port to automake 1.4a.
	* src/server/testsuite/Makefile.am (check_PROGRAMS): Don't bother
	building test-l2g until "make check".
	(nodist_noinst_DATA): Dont' distribute site.exp and .gdbinit.

200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225
1999-05-23  Per Cederqvist  <ceder@gratia>

	Disallow tabs in lyskomd.texi.
	* doc/Makefile.am (dist_noinst_DATA): New target, containing
	Protocol-A.notab and lyskomd.notab.
	(MOSTLYCLEANFILES): Added Protocol-A.notab and lyskomd.notab.
	(protocol-a.info): Remove the tab-checking code.
	(SUFFIXES): Added .texi .notab.
	(.texi.notab): New rule, that checks that no tabs exist in Texinfo
	files.

	Get rid of the file local-to-global.doc.  Various fixes to
	lyskomd.texi.
	* doc/Makefile.am (EXTRA_DIST): Remove local-to-global.doc.
	* doc/local-to-global.doc: File removed; contents moved into
	lyskomd.texi.
	* doc/lyskomd.texi: Removed all up, next and prev pointers
	once again.  Untabify.  Remove trailing whitespace from lines.
	(Overview): Added a missing "General" to the name of the license.
	Don't talk about my private future plans.
	(Installation): Refer to README.
	(DBCK Bugs): don't say that dbck doesn't lock the database; it does.
	(Function Templates for prot-a-send-async.c): Improve the markup.
	(Configuration Options): Mention --with-traced-allocations.
	(local-to-global): New node.  Not yet translated.

226 227 228 229 230 231 232 233 234 235
1999-05-22  Per Cederqvist  <ceder@lysator.liu.se>

	Translated and updated the release instructions.
	* HACKING: New file.  This contains an updated translation of
	SERVER-RELEASE and information about the versions of various tools
	that was used to create the release.
	* SERVER-RELEASE: Removed.
	* Makefile.am (EXTRA_DIST): Added HACKING.  Removed
	SERVER-RELEASE.

236 237
1999-05-21  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
238 239 240 241 242 243 244 245
	"make dist" fixes.
	* src/server/Makefile.am (lyskomd_SOURCES): Added server-time.h
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Changed
	leaks.0/no-aux-items.exp  and leaks.0/lots-aux-items.exp to
	leaks.0/no-aux-items.conf and leaks.0/lots-aux-items.conf.
	* doc/Makefile.am (EXTRA_DIST): Removed ADMINISTRATION and
	misc_items.

246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
	Get rid of the very obsolete SERVER and CLIENT macros.
	* src/server/testsuite/Makefile.am (INCLUDES): Removed -DSERVER.
	* src/server/Makefile.am (INCLUDES): Removed -DSERVER.
	* src/libraries/libcommon/parser.c: Don't use SERVER.
	* src/libraries/libcommon/Makefile.am (INCLUDES): Removed -DSERVER.
	* src/include/services.h: Don't use SERVER or CLIENT.  Fix some
	indentation.
	(KOM_): Macro removed.  All users updated.
	* src/include/kom-types.h: Don't use SERVER or CLIENT.  Fix some
	indentation.
	* configure.in: Don't define SERVER.
	* acconfig.h (PROTOTYPES): Removed.
	(SERVER): Removed.
	(VERSION): Removed.

261 262 263 264 265 266
	Remove all gcov files in "make mostlyclean".
	* src/server/testsuite/Makefile.am (MOSTLYCLEANFILES): Added "*.da",
	"*.bb", "*.gcov" and "*.bbg".
	* src/libraries/libmisc/Makefile.am: Likewise.
	* src/libraries/libcommon/Makefile.am: Likewise.

David Byers's avatar
David Byers committed
267 268 269 270 271 272 273 274
1999-05-21  David Byers  <davby@ida.liu.se>

	* doc/lyskomd.texi (Adding New Input Types): Document the fact
	that you have to free data in prot_a_destruct as well.

	* src/server/prot-a.c (prot_a_destruct): Free num_lists in the
	client structure.
	
275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
1999-05-21  Per Cederqvist  <ceder@paragon.signum.se>

	Don't lock the database when dbck is running in read-only mode.
	* src/server/dbck.c (iflag): Now static.
	(rflag): Now static.
	(gflag): Now static.
	(sflag): Now static.
	(force_output): Now static.
	(unset_change_name_is_error): Now static.
	(dump_text_numbers): Now static.
	(main): Only lock the database when dbck might want to change it.
	Added a missing break statement.  Mark the database as modified if
	any of --pres-pres-conf, --conf-pres-conf, --motd-conf,
	--motd-of-kom or --kom-news-conf is used.

David Byers's avatar
David Byers committed
290 291
1999-05-21  David Byers  <davby@ida.liu.se>

292 293
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added null.exp 

David Byers's avatar
David Byers committed
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397
	* doc/lyskomd.texi: Merged lyskomdb.texi into this document. 

	* src/server/server-config.c: Unassign the lockfile name.

	* doc/Makefile.am (info_TEXINFOS): Removed deleted files.
	(EXTRA_DIST): Removed deleted files from EXTRA_DIST.

	* src/server/conf-file.c (unassign_string): New function.

	* src/server/conf-file.h (parameter): Added a free function.

	* src/server/simple-cache.c (free_all_cache): Free the
	small_conf_arr.

	* src/server/ramkomd.c (dump_exit_statistics): Moved remaining
	frees from main to here.

1999-05-20  David Byers  <davby@ida.liu.se>

	* src/server/testsuite/config/unix.exp: You can now supply
	MEMTRACE, ATTACH and EFENCE algorithms on the runtest command
	line.

	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added new leak
	tests to EXTRA_DIST.

	Eliminated memory leaks in aux-item definition parser
	* src/server/aux-items.c (free_aux_item_definitions): Free each
	individual aux item definition. Another memory leak down the
	drain.

	* src/server/aux-item-def-parse.y: Free the string of an ID
	parameter when we see one. Another memory leak bites the dust.

	* src/server/aux-items.c (aux_item_definition_cache_regexp): Plug
	a really minor (constant size) memory leak.

	* src/server/aux-item-def-parse.y: Use string_free to free stuff
	allocated with s_crea_c_str.

	* src/server/aux-items.c (aux_item_trigger_link_item): Use
	string_free to free string allocated with s_crea_c_str.
	(free_aux_item_definitions): Same here.

1999-05-19  David Byers  <davby@ida.liu.se>

	* src/server/prot-a-parse.c (prot_a_parse_aux_item_list): Clear
	the dummy aux item after parsing it. Memory leak plugged.

	* src/server/memory.c (clear_aux_item): New function.
	(free_aux_item_list): Use it.

	* src/server/prot-a-parse.c (prot_a_parse_num_list): Handle
	truncation so protocol errors during truncation will not break the 
	server.
	(prot_a_hunt_nl): Same here.
	(prot_a_parse_aux_item_list): Same here.

	* src/server/prot-a.c (prot_a_init): Initialize
	array_parse_parsed_length

	* src/server/internal-connections.c (init_connection): Initialize
	array_parse_parsed_length

	* src/server/connections.c (free_parsed): Initialize
	array_parse_parsed_length.

	* src/server/connections.h (Connection): Added
	array_parse_parsed_length

	* src/server/fncdef.txt: Truncate strings in set_client_version to 
	client_data_len.

	* src/server/ramkomd.c (main): Free aux-item definitions on exit.

	* src/server/aux-items.c (free_aux_item_definitions): New function
 	to free all data associated with aux-item defs.

	* src/server/ramkomd.c (main): Free aux-item definition.

1999-05-18  David Byers  <davby@ida.liu.se>

	* src/server/prot-a-parse.c (prot_a_parse_aux_item_flags): Handle
	variable-length bitfields.

	* src/server/memory.c (init_aux_item_flags): New function.

	* src/server/prot-a-parse.c (prot_a_parse_priv_bits): Handle
 	variable-length bitfields.
	(prot_a_parse_membership_type): Same here.
	(prot_a_parse_conf_type): Same here.

	* src/server/memory.c (init_membership_type): New function.

	* doc/Protocol-A.texi (set-client-version): Added list of known
	clients.

	* ChangeLog.1: Inserted doc/LOGG

	* doc/LOGG: Added to ChangeLog.1

	* src/server/conference.c (set_supervisor): Use
	is_strictly_supervisor instead of is_supervisor.

398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416
1999-05-21  Per Cederqvist  <ceder@gratia>

	Lock the database file with an explicit lock file.
	* src/server/dbck.c (main): Lock and unlock the database.
	* src/server/ramkomd.c (init_data_base): Log the name of the lock
	file.
	(initialize): Lock the database before opening it.
	(main): Unlock the database.
	* src/server/server-config.c (parameters): Added "Lock file".
	(read_configuration): Handle param.lockfile_name.
	* src/server/param.h (struct kom_par): Added lockfile_name.
	* src/server/Makefile.am (lyskomd_SOURCES): Added lockdb.h and
	lockdb.c.
	(DBCK): Likewise.
	* src/server/lockdb.c, src/server/lockdb.h: New files.
 	(lock_db): New function.
	(unlock_db): New function.
	* doc/lyskomd.texi (Parameters): Document "Lock file:".

417 418 419 420 421 422 423 424 425 426
1999-05-20  Per Cederqvist  <ceder@signum.se>

	Clean up the framework for hunting memory leaks.
	* src/server/ram-smalloc.c: Document --with-traced-allocations.
	* src/server/realloc.gdb: File removed.
	* src/server/malloc.gdb: File removed.
	* src/server/free.gdb: File removed.
	* src/server/Makefile.am (EXTRA_DIST): Removed free.gdb,
	malloc.gdb and realloc.gdb.

427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462
1999-05-20  Per Cederqvist  <ceder@gratia>

	dbck failed to handle bcc_recpts.
	* src/libraries/libcommon/misc-parser.c (parse_next_misc): Handle
	bcc_recpt.  Fix usage of the COMPILE_CHECKS macro.

	Fix usage of the COMPILE_CHECKS macro.
	* src/server/text.c (find_recipient): Fix usage of the
 	COMPILE_CHECKS macro.
	(is_member_in_recpt): Likewise.
	(do_delete_misc): Likewise.
	(do_sub_recpt): Likewise.
	(sender): Likewise.
	(is_sender): Likewise.
	(is_comm_sender): Likewise.
	(skip_recp): Likewise.
	(recp_sent_by): Likewise.
	(filter_secret_info): Likewise.
	(do_delete_text): Likewise.
	(check_double_subm): Likewise.
	(check_double_comm): Likewise.
	(create_text_add_miscs): Likewise.
	* src/server/text-garb.c (garb_text): Fix usage of the
 	COMPILE_CHECKS macro.
	* src/server/ram-output.c (foutput_misc_info): Fix usage of the
 	COMPILE_CHECKS macro.
	* src/server/prot-a-output.c (prot_a_output_misc_info): Fix usage
 	of the COMPILE_CHECKS macro.
	* src/server/dbck.c (delete_misc): Fix usage of the
	COMPILE_CHECKS macro.
	(is_recipient): Likewise.

	Code cleanup.
	* src/include/kom-types.h: Removed code within #ifdef PROT_a.  It
	was never used, and is obsoleted by aux-items.

Per Cederqvist's avatar
Per Cederqvist committed
463 464 465 466
1999-05-19  Per Cederqvist  <ceder@signum.se>

	* NEWS: We document in Texinfo, not info.

467 468 469 470 471 472 473 474 475 476 477 478
1999-05-18  Per Cederqvist  <ceder@gratia>

	Avoid ".*" in regexps in the test suite, since they can easily
	match too much.
	* src/server/testsuite/lyskomd.0/06.exp: Use "$hollerith" instead
 	of a hard-coded regexp, to avoid parsing past newlines.
	* src/server/testsuite/lyskomd.0/person-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/send-async-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/04.exp: Use "$any" instead of "."
	to match any character, to avoid parsing past newlines.
	* src/server/testsuite/lyskomd.0/membership-cov.exp: Likewise.

Per Cederqvist's avatar
Per Cederqvist committed
479 480 481 482 483 484 485
1999-05-18  Per Cederqvist  <ceder@lysator.liu.se>

	Increase coverage.
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added
	lyskomd.0/08.exp.
	* src/server/testsuite/lyskomd.0/08.exp: New file.

David Byers's avatar
David Byers committed
486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517
1999-05-18  David Byers  <davby@ida.liu.se>

	* doc/lyskomd.texi: Merged dbck.texi and hacking.texi into
	lyskomd.texi.

	* src/server/testsuite/lyskomd.0/03.exp: Updated
	query-predefined-aux-items result.

	* src/server/testsuite/lyskomd.0/01.exp: Updated
	query-predefined-aux-items result.

	* src/server/aux-items.c (undelete_aux_item_list): Fixed
	conference/text mixup
	(delete_aux_item_list): Same here.
	(undelete_aux_item_list): Save kom_errno and err_stat across call.

	* src/server/aux-item-def-parse.y: Deal with disabled definitions
	in a more sensible manner.

	* src/server/aux-items.c (aux_item_add_perm): Check the disabled
	field of the aux-item definition.

	* src/server/aux-items.h: Added disabled field.

1999-05-17  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c (aux_item_list_add_items): New utility
	function.
	(system_add_aux_item_list): Use aux_item_list_add_items.
	(text_stat_add_aux_item_list): Use aux_item_list_add_items.
	(conf_stat_add_aux_item_list): Use aux_item_list_add_items.

518 519
1999-05-16  Per Cederqvist  <ceder@lysator.liu.se>

520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572
	Use a global variable to store the current time, so that it is
	never changes during an atomic call, and so that we don't call
	time() more than once per call.
	* src/server/server-time.h: New file.
	* src/server/ramkomd.c (main): Initialize current_time.
	* src/server/connections.c (milli_timevaldiff): Removed.
	(dump_statistics): Use current_time instead of calling time().
	(toploop): Call time once per select loop instead of calling
	gettimeofday twice.  Simplify the computation of the timeout.
	* src/server/conference.c (do_create_conf): Use current_time
	instead of time().
	* src/server/text.c (add_text_in_conf): Use current_time instead
	of calling time().
	(do_create_text): Likewise.
	(add_recipient): Likewise.
	(add_footnote): Likewise.
	(add_comment): Likewise.
	(create_text_add_miscs): Removed the now argument.  All callers
	updated.  User current_time instead of now.
	* src/server/text-garb.c (garb_text): Use current_time instead of
	calling time().
	* src/server/simple-cache.c (sync_part): Use current_time instead
	of calling time().
	(init_cache): Likewise.
	* src/server/session.c (leave_conf): Use current_time instead of
	calling time().
	(login_old): Likewise.
	(login): Likewise.
	(logout): Likewise.
	(who_is_on_dynamic): Likewise.
	(get_session_info): Likewise.
	(get_session_info_ident): Likewise.
	(get_time): Likewise.
	(user_active): Likewise.
	* src/server/send-async.c (async_rejected_connection): Use
	current_time instead of calling time().
	* src/server/person.c (create_person_generic): Use
	current_time instead of calling time().
	* src/server/membership.c (do_add_rec_time): Use
	current_time instead of calling time().
	(do_add_member): Likewise.
	* src/server/internal-connections.c (init_connection): Use
	current_time instead of calling time().
	(new_client): Likewise.
	* src/server/aux-items.h: (prepare_aux_item_list): Removed the
	"now" argument.
	(prepare_aux_item): Likewise.
	* src/server/aux-items.c (prepare_aux_item_list): Removed the
	"now" argument.  Use current_time instead.  Call callers updated.
	(prepare_aux_item): Likewise.
	* src/server/admin.c (modify_server_info): Don't pass the current
	time to prepare_aux_item_list.

573 574 575 576 577 578 579 580 581
	Document updateLysKOM and komrunning.  Make them accept -v/-V.
	* doc/lyskomd.texi: Removed all up, next and prev pointers.
	(Invoking updateLysKOM): New node.
	(Invoking komrunning): New node.
	* src/server/updateLysKOM.c (main): Use PACKAGE and VERSION (from
	config.h) when reporting the version number.
	* src/server/komrunning.c (usage): Accept -v and -V.
	(main): Likewise.
	
582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605
	The test suite now fails without having to wait for a timeout if a
	wrong result with the proper ref-no is returned.
	* src/server/testsuite/config/unix.exp (MEMTRACE): Default to
	/dev/null.
	(simple_expect): Recognize attempts to match protcol-A replies,
	and fail without a timeout if the correct reference number is
	returned with bogus data.

	Fix "make dist".
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added
	lyskomd.0/07.exp, lyskomd.0/broken-aux-items.conf,
	lyskomd.0/cache-node-cov.exp, lyskomd.0/conf-file-cov.exp,
	lyskomd.0/conference-cov.exp, lyskomd.0/connections-cov.exp,
	lyskomd.0/disk-end-of-atomic-cov.exp,
	lyskomd.0/internal-connections-cov.exp,
	lyskomd.0/isc-parse-cov.exp, lyskomd.0/log-cov.exp,
	lyskomd.0/membership-cov.exp, lyskomd.0/memory-cov.exp,
	lyskomd.0/person-cov.exp, lyskomd.0/prot-a-parse-cov.exp,
	lyskomd.0/prot-a-send-async-cov.exp, lyskomd.0/send-async-cov.exp,
	lyskomd.0/session-cov.exp and lyskomd.0/text-cov.exp.
	* src/server/Makefile.am (komrunning_SOURCES): Added pidfile.h.
	(updateLysKOM_SOURCES): Added pidfile.h.
	(lyskomd_SOURCES): Added trace-alloc.h.

606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623
	Fix the framework for hunting memory leaks.
	* configure.in: Handle --with-traced-allocations.
	* acconfig.h (TRACED_ALLOCATIONS): New define.
	* src/server/trace-alloc.h: New file.
	* src/server/testsuite/config/unix.exp (lyskomd_start): Handle
	TRACED_ALLOCATIONS.
	(lyskomd_fail_start): Likewise.
	* src/server/ramkomd.c (main): Call trace_alloc_file very early
	during startup if compiled with TRACED_ALLOCATIONS.
	* src/server/ram-smalloc.c: Test TRACED_ALLOCATIONS instead of
	DEBUG_MALLOC.
	(trace_alloc_file): New function, that sets up malloc_fp.
	(trace_smalloc): Write to malloc_fp.
	(trace_free): Likewise.
	(srealloc): Likewise.
	* src/server/ram-smalloc.c: Don't test USE_GNU_MALLOC; that symbol
	was removed 1998-08-09.

David Byers's avatar
David Byers committed
624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641
1999-05-16  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c (prepare_aux_item): Don't clear the link
	field of the aux item.
	(aux_inherit_items): Clear the link in the copied item before
	calling add triggers.
	(aux_item_link_items): New function.
	(aux_item_trigger_mirror_faq): Use aux_item_link_items.
	(aux_item_trigger_link_item): Use aux_item_link_items.
	(aux_item_call_add_triggers): Fix the trigger data after calling
	each trigger since one of them might move the aux item list in 
	memory.

1999-05-15  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c (aux_item_trigger_link_item): New
	function for debugging linking aux items.

Per Cederqvist's avatar
Per Cederqvist committed
642 643 644 645 646 647 648 649 650 651 652 653 654
1999-05-14  Per Cederqvist  <ceder@lysator.liu.se>

	Fixes to the test suite.
	* src/server/testsuite/lyskomd.0/connections-cov.exp: A client
	dies immediately when it receives %% No connections left, so the
	test case should not expect it to live longer.  Renumber the
	ref-nos.  The nologin file exists in the build directory, not in
	srcdir.
	* src/server/testsuite/leaks.0/leaks02.exp: Don't forget the flags
	argument to create-person.
	* src/server/testsuite/lyskomd.0/conference-cov.exp: Don't attempt
	to use debug calls unless debug_calls is true.
	* src/server/testsuite/lyskomd.0/person-cov.exp: Likewise.
Per Cederqvist's avatar
Per Cederqvist committed
655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672
	* src/server/testsuite/lyskomd.0/person-cov.exp: Look for
	config/prot-a.exp in srcdir.  Don't fail if the clock ticks.
	* src/server/testsuite/lyskomd.0/conference-cov.exp: Look for
	config/prot-a.exp in srcdir.
	* src/server/testsuite/lyskomd.0/connections-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/membership-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/prot-a-parse-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/prot-a-send-async-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/send-async-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/session-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/text-cov.exp: Likewise.
	* src/server/testsuite/config/unix.exp (timeout): Don't alter the
	default value.  Not every computer is fast computer.
	(lyskomd_start): The aux-item config file is found relative to
	$srcdir, not [pwd].  The config/lyskomd-config file is found
	relative to the current working directory.
	(lyskomd_fail_start): Likewise.  Find the database files relative
	to top_srcdir.
Per Cederqvist's avatar
Per Cederqvist committed
673

David Byers's avatar
David Byers committed
674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783
1999-05-14  David Byers  <davby@ida.liu.se>

	* src/server/text.c (do_create_text): Return long-array if there
	are too many misc items.
	(modify_text_info): Set err_stat to max length when returning
	KOM_LONG_ARRAY.

	* src/include/kom-types.h (Info_datum): Added unknown_type to
	union.

	* src/server/text.c (find_recipient): Add unknown_info to the
	switch. Stop the server if COMPILE_CHECKS is undefined.
	(is_member_in_recpt): Same here.
	(do_delete_misc): Same here.
	(do_sub_recpt): Same here.
	(sender): Same here.
	(is_sender): Same here.
	(is_comm_sender): Same here.
	(skip_recp): Same here.
	(recp_sent_by): Same here.
	(filter_secret_info): Same here.
	(do_delete_text): Same here. 
	(check_double_subm): Same here.
	(check_double_comm): Same here.
	(create_text_check_misc): Return an illegal-info-typye if we see
	an unknown info. Set err_stat to the index of the bad item when
	returning a KOM_ILL_MISC.
	(create_text_add_miscs): Same here.

	* src/server/prot-a.c (prot_a_destruct): Free the misc_info_list
	field of the connection.

	* src/server/membership.c (add_rec_time): Handle unknown_info and
	other unknown misc info types by shutting down the server.

	* src/server/call-switch.awk: Add support for misc_info_list in
	fncdef.txt.

	* src/server/text.c (create_text_old): Changed parameter list to
	use Misc_info_list instead of an integer and a Misc_info pointer.
	(create_text): Same here.
	(create_anonymous_text): Same here.
	(create_anonymous_text_old): Same here.

	* src/server/fncdef.txt: Changed all "num c_misc_info_p" to
	misc_info_list. 

	* src/server/prot-a-parse-arg-c.awk: The aux_item type works again.
	Allow misc_info_list as a type name.

	* src/server/prot-a-parse.c (prot_a_parse_misc_info_list): New
	function. 

	* src/server/prot-a.c (prot_a_init): Initialize the misc_info_list 
	field.

	* src/server/internal-connections.c (kill_client): Use
	misc_info_list field of Connection.

	* src/server/connections.c (free_parsed): Clear the misc_info_list 
	field.

	* src/include/kom-types.h (Misc_info_list): New type

	* src/server/internal-connections.c (init_connection): Initialize
	hunt_parse_pos, array_hunt_depth and array_hunt_num. Initialize
	misc_info_list. 

	* src/server/prot-a-parse.c (prot_a_hunt_array_end): New function
	hunts for the end of an array.c

	* src/server/prot-a.c (prot_a_init): Initialize hunt_parse_pos and 
	array_hunt_num.


	* src/include/kom-types.h (Info_type): Added unknown info type. 

	* src/server/prot-a-parse.c (prot_a_parse_misc_info): Parse all
	misc-info types that the server knows about. Unknown types
	generate a protocol error.

	* src/server/testsuite/lyskomd.0/prot-a-parse-cov.exp (1021):
	Expcet long-array and not protocol-error.

	* src/server/prot-a-parse.c (prot_a_parse_aux_item_list): Discard
	the part of the list that is longer than the max rather than send
	a protocol error.

1999-05-13  David Byers  <davby@ida.liu.se>

	* src/server/testsuite/lyskomd.0/prot-a-parse-cov.exp
	(protocol_error): Removed expected failure.

	* src/server/admin.c (modify_server_info): Return KOM_LONG_ARRAY
 	when we see a long array.

	* src/server/conference.c (modify_conf_info): Return
 	KOM_LONG_ARRAY when we see a long array.

	* src/server/text.c (modify_text_info): Return KOM_LONG_ARRAY when 
	we see a long array.

	* src/server/prot-a-parse.c (prot_a_parse_num_list): Truncate a
	parsed array to one more than the maximum length and skip all
	other elements.

	* src/server/aux-items.c (undelete_aux_item_list): Log if the link 
	type is undefined and do not attempt to undelete.
	(delete_aux_item_list): Likewise.

784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808
1999-05-13  Per Cederqvist  <ceder@gratia>

	Distribute the leaks tests, and run them during "make check".
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Track the rename
	of lyskoms.0/leaks*.exp -> leaks.0/leaks*.exp.
	(check): Depend on check-leaks.
	(check-leaks): New target.

	Code cleanup/minor bugs fixed.
	* src/server/testsuite/tcpconnect.py: socket.recv can raise
	socket.error!  Handle it as end-of-file.
	* src/server/simple-cache.c (cached_conf_exists): Removed the
	unused variable node.
	* src/server/aux-items.c (find_linked_aux_item_list): Don't use an
	uninitialized variable.
	(delete_aux_item_list): Fail if the default branch is reached.
	(undelete_aux_item_list): Fail if the default branch is reached.
	(aux_item_trigger_mirror_faq): Test data->object for NULLness
	intstead of the uninitialized variable conf_stat.
	* doc/hacking.texi (Linking Pairs of Aux Items): Texinfo problem
	fixed.
	* doc/Protocol-A.texi (set-info): Untabify.
	(accept-async): Untabify.
	(query-async): Untabify.

David Byers's avatar
David Byers committed
809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039
1999-05-12  David Byers  <davby@ida.liu.se>

	Stuff I forgot to add below

	* Renamed log to kom_log since log is a function in math.h.
	
	* src/include/services.h (set_pers_flags): New prototype. 
	(create_person): Added flags parameter.
	
	* run-support/config: Set defaults for max texts and max
	conferences.

	* run-support/aux-items.conf (faq-text): Removed all triggers. Set
 	add-trigger to link-faq, added validator.
	(faq-for-conf): New item definition.

	* doc/lyskomd.texi (Parameters): Added Max conferences, Max texts, 
	Max client data length, Nologin fle. Updated some other parameter
	descriptions.
	(Aux-Item Definition File): Added system-only. Rewrote validate to 
	allow function identifiers. Added list of validator functions and
	triggers.
	(Files): Document /etc/nologin.

	* doc/hacking.texi: Correct minor typos. Change some @code into
	@file.
	(Linking Pairs of Aux Items): New section.

	* doc/Protocol-A.texi: Correct minor typos
	(Predefined Aux-Item Types): Rephrase some
	of the text. Remove statement that faq-text item marks a text.
	Document faq-for-conf. Specify formate for mx-message-id. 
	(Simple Data Types): Removed documentation for INTEGER.
	(set-etc-motd): Change too-many-marks to mark-limit
	(mark-text-old): Change too-many-marks to mark-limit
	(set-conf-type): Correct documentation for secret-public error.
	Correct spelling in invalid-membership-type documentation.
	(add-recipient): Add documentation for access-denied error
	(add-comment): Define error-status in index-out-of-range.
	(sub-comment): Change no-comment to not-comment.
	(send-message): Complete documentation of message-not-sent error.
	(create-text): Add index-out-of-range as possible error.
	(create-conf): Complete doc of permission-denied error.
	(create-person): Added personal-flags parameter.
	(create-person): Document person-exists error.
	(set-pers-flags): New call.
	(Error Codes): Clarify message-not-sent and index-out-of-range.

	* configure.in: Added flag --with-insure++. Define AVOID_ABORTS
	when compiling with support for gcov.
	
	* src/server/testsuite/tcpconnect.py: Added #hose socket to hose
 	the socket with lots of zeroes.

	* src/server/testsuite/config/prot-a.exp: New functions
	kom_set_permitted_submitters, kom_set_super_conf, kom_login_old,
	kom_mark_text, kom_sub_recipient, kom_set_conf_type,
	kom_change_conference, kom_set_priv_bits.
	(kom_create_person): Send the pers_flags field.

	* src/server/testsuite/config/unix.exp: Print a dot for every test 
	case in verbose mode.
	(lyskomd_start): New parameters extra_config for additional config 
	file contents and base_config for basic config file contents
	(defaults will not be used.) Don't print defaults for max
	conferences or max texts if they are in extra_config. It is
	possible to start lyskomd with arbitrary arguments.
	(lyskomd_fail_start): Function to use when lyskomd is supposed to
	not start properly (like lyskomd_start, but server failue is
	expected.)
	(client_start_fail): New function like client_start, but failure
	is expected.
	(kill_client): Unset expect_active and expect_always instead of
	setting to the empty string.
	(hose_client): New function

	* src/server/testsuite/lyskomd.0/00.exp: Send pers-flags in calls
	to create-person.

	* src/server/testsuite/lyskomd.0/01.exp: Update expected results
	in query-predefined-aux-items. Send pers-flags in call to
	create-person. Add test for set-pers-flags. Add test for
	nonexistent call 107.

	* src/server/testsuite/lyskomd.0/02.exp: Send pers-flags in call
	to create-person.

	* src/server/testsuite/lyskomd.0/03.exp: Expect aux-item 28 in
	query-predefined-aux-items. Send pers-flags in call to
	create-person. Expect the faq-for-conf aux-item in test 1327.
	Expect failure attempting to set nonexistent text as faq (test
	1342.) Remove the now failed faq item in subsequent tests. Add
	test for set-pers-flags.

	* src/server/testsuite/lyskomd.0/04.exp: Send pers-flags in calls
	to kom_create_person.

	* src/server/testsuite/lyskomd.0/05.exp: Send pers-flags in calls
	to kom_create_person. Be more flexible when expecting time
	corresponding to time_t zero. Set garb and sync interval to
	something really high to avoid spurious async messages while
	running the tests.

	* src/server/testsuite/lyskomd.0/06.exp: Send pers-flags in calls
	to kom_create_person.

	* src/server/testsuite/lyskomd.0/admin-cov.exp: More setup to
	support new tests. Test that we can't send messages to secret
	confs. Test that messages are filtered for passive members.

	* src/server/testsuite/lyskomd.0/aux-items-cov.exp: Send
	pers-flags in calls to kom_create_person. Attempt to create
	aux-items with broken validation regexp. Test the system-only
	attribute. Test a broken aux-item config file.

	* src/server/testsuite/lyskomd.0/aux-items.cov: Add an item
	definition with system-only property.
	
	* src/server/prot-a-parse.h: Added prototype for
 	prot_a_parse_pers_flags
	
	* src/server/prot-a-parse.c (prot_a_parse_pers_flags): New
	function to parse pers flags.
	
	* src/server/prot-a-output.c (prot_a_output_text_mapping):
 	Initialize the fields of iter to avoid warnings from tools that
 	detect access to uninitialize memory.
	
	* src/server/local-to-global.c: Use kom_log instead of log.
	
	* src/server/kom-memory.c: Added prototypes for init_aux_item and
	init_aux_item_link. 
	
	* src/server/aux-items.c (system_check_add_aux_item_list): Call
	aux_item_add_perm with INFO_OBJECT_TYPE for the object_type
	parameter.

	* src/server/admin.c: Use kom_log instead of log everywhere. 
	(send_message): Do not permit sending group messages to secret
	conferences. Set errno to KOM_MESSAGE_NOT_SENT if there are no
	appropriate recipients.

	* src/server/aux-item-def-parse.y: Parse validation functions in
	addition to validation regexps. Use kom_log instead of log. Parse
	the system-only property.
	(aux_item_def_check_validate): New function.

	* src/server/aux-items.c: Add the aux-item being involved item
 	itself to aux-item trigger data.
	(aux_item_validate_existing_text): New validation function.
 	(aux_item_trigger_mirror_faq): New add trigger function
 	(aux_item_trigger_unmark_text): Modified to work for aux-items on
 	texts and conferences, not just conferences. Do not unmark an
 	unmarked text.
	(aux_item_trigger_mark_text): Do not add more marks than
 	permitted.
	(find_aux_item_index): New function to find the index of an item
	with a particular number in an aux item list.
	(commit_aux_item_list): Renamed to commit_aux_item_list_internal.
	(commit_aux_item_list_internal): Delete linked aux items.
	(commit_aux_item_list): Wrapper for commit_aux_item_list_internal.
	(delete_aux_item_list): Manage deletion of linked items.
	(undelete_aux_item_list): Manage undeletion of linked items.
	(mark_linked_object_as_changed): New function to mark the object
	containing a linked aux item as changed.
	(find_linked_aux_item): New function to find the aux item that is
	linked to a given aux item.
	(find_linked_aux_item_list): New function to find the aux item
	list containing the aux item that is linked to a given aux item.
	(aux_item_validate): New function for validating aux items. Deals
	with regexps and validation functions.
	(aux_item_add_perm): Handle the system-only property of aux item
	definitions.
	

1999-05-09  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c (prepare_aux_item): Clear the linked_item
 	field properly.

	* src/server/memory.c (init_aux_item_link): New function.
	(init_aux_item): Use init_aux_item_link
	(init_aux_item): New function added earlier.

	* src/server/prot-a-parse.c (prot_a_parse_aux_item): Clear the
	parsed aux_item to get good defaults for fields that are not read
	in the parser.

	* src/server/admin.c (modify_server_info): Pass INFO_OBJECT_TYPE
	to delete_aux_item_list and undelete_aux_item_list.

	* src/server/aux-items.h: Changed all declarations of object_type
	from short to Object_type.

	* src/server/aux-items.c: Changed all declarations of object_type
	from short to Object_type.

	* src/server/ram-parse.c (fparse_aux_item_link): New function.
	(fparse_aux_item): Parse the link as well.

	* src/include/kom-types.h (Object_type): New type (moved defs from
 	aux-items.h) 
	(Aux_item_link): New type
	(Aux_item): Added linked_item field.

	* src/server/ram-output.c (foutput_aux_item): Output linked_item
	field.
	(foutput_aux_item_link): New function to output a link to another
	aux item.

	* src/server/aux-items.c: Added handling of item field in aux item 
	trigger calls.

	* src/server/aux-items.h (Aux_item_trigger_data_s): Added item
	field.

	* src/server/aux-items.c (system_check_add_aux_item_list): Set
	owner_check to TRUE in call to aux_item_add_perm so system-only
	restriction works on system-info aux-item list.

	* src/server/testsuite/lyskomd.0/admin-cov.exp: Added tests for
	sending messages to secret confs and to conf with passive member
	logged in.

	* doc/Protocol-A.texi (send-message): Document that
	message-not-sent is returned when there are no recipients for a
	group message.

	* src/server/com-h.awk: Set illegal_fnc to -1 (was cnt) since cnt
	might be a legal function.

1040 1041 1042 1043
1999-05-02  Per Cederqvist  <ceder@gratia>

	"make check" in the top directory failed in some environments.
	* src/server/testsuite/Makefile.am (check-lyskomd): Close file
1044
	descriptors 3-9 to avoid interference between file descriptors
1045 1046
	inherithed from make, sshd et c with lyskomd.0/07.exp.

Per Cederqvist's avatar
Per Cederqvist committed
1047 1048 1049 1050 1051 1052 1053
1999-05-01  Per Cederqvist  <ceder@lysator.liu.se>

	Use libisc-1.00.
	* src/libraries/libisc-new: Replace the old contents with that of
	isc-1.00.  Se src/libraries/libisc-new/ChangeLog for information
	about any modifications that are made to the library.

1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184
1999-04-28  Per Cederqvist  <ceder@lysator.liu.se>

	Remove support for the mux protocol.  Don't use isc_printf.
	* src/server/testsuite/lyskomd.0/07.exp: Decrease the all file
	descriptors by one, now that the server no longer listens for a
	mux.  Test that protocol B is unsupported.
	* src/server/testsuite/config/unix.exp (muxport): Removed.
	(lyskomd_start): Don't set "Mux port" in the config file.
	* src/server/server-config.c (parameters): Removed parameter "Mux
	port".
	* doc/lyskomd.texi (Parameters): Removed "Mux port".
	* src/server/ramkomd.c (listen_mux): Removed.
	(server_init): Remved the "mux_port" argument.  Don't listen for
	muxes.
	(initialize): Don't pass the "mux_port" argument to server_init.
	* src/server/prot-a.c (prot_a_reply): Use isc_putc, isc_putul,
	isc_flush and prot_a_output_ul instead of mux_printf, mux_flush
	and mux_putc.
	(prot_a_parse_packet): Likewise.
	* src/server/prot-a-send-async.c (async_header): Use isc_putc,
	isc_putul, prot_a_output_ul and isc_flush instead of mux_printf,
	mux_putc and mux_flush.
	(async_trailer): Likewise.
	(prot_a_async_new_text_old): Likewise.
	(prot_a_async_new_text): Likewise.
	(prot_a_async_logout): Likewise.
	(prot_a_async_new_name): Likewise.
	(prot_a_async_forced_leave_conf): Likewise.
	(prot_a_async_login): Likewise.
	(prot_a_async_send_message): Likewise.
	(prot_a_async_deleted_text): Likewise.
	(prot_a_async_new_recipient): Likewise.
	(prot_a_async_sub_recipient): Likewise.
	(prot_a_async_new_membership): Likewise.
	* src/server/prot-a-output.h (prot_a_output_ul): New function.
	* src/server/prot-a-parse.c (prot_a_get_token): Use isc_puts and
	isc_flush instead of mux_printf and mux_flush.
	(prot_a_parse_num_list): Likewise.
	(prot_a_parse_string): Likewise.
	* src/server/prot-a-output.c (prot_a_output_ul): New function.
	(prot_a_output_person): Use prot_a_output_ul, isc_puts, isc_putc
	and isc_write instead of mux_printf, mux_putc and mux_write.
	(prot_a_output_membership_type): Likewise.
	(prot_a_output_membership): Likewise.
	(prot_a_output_membership_old): Likewise.
	(prot_a_output_membership_list_old): Likewise.
	(prot_a_output_membership_list): Likewise.
	(prot_a_output_conf_list): Likewise.
	(prot_a_output_conf_no_list): Likewise.
	(prot_a_output_conference): Likewise.
	(prot_a_output_conference_old): Likewise.
	(prot_a_output_uconference): Likewise.
	(prot_a_output_mark_list): Likewise.
	(prot_a_output_aux_item_flags): Likewise.
	(prot_a_output_aux_item): Likewise.
	(prot_a_output_text_stat_old): Likewise.
	(prot_a_output_aux_item_list): Likewise.
	(prot_a_output_who_info_ident): Likewise.
	(prot_a_output_who_info): Likewise.
	(prot_a_output_who_info_list): Likewise.
	(prot_a_output_who_info_ident_list): Likewise.
	(prot_a_output_who_info_list_old): Likewise.
	(prot_a_output_session_info): Likewise.
	(prot_a_output_session_info_ident): Likewise.
	(prot_a_output_info_old): Likewise.
	(prot_a_output_string): Likewise.
	(prot_a_output_priv_bits): Likewise.
	(prot_a_output_personal_flags): Likewise.
	(prot_a_output_conf_type): Likewise.
	(prot_a_output_extended_conf_type): Likewise.
	(prot_a_output_member_list): Likewise.
	(prot_a_output_member_list_old): Likewise.
	(prot_a_output_member): Likewise.
	(prot_a_output_member_old): Likewise.
	(prot_a_output_mark): Likewise.
	(prot_a_output_misc_info): Likewise.
	(prot_a_output_time): Likewise.
	(prot_a_output_session_no): Likewise.
	(prot_a_output_text_no): Likewise.
	(prot_a_output_conf_z_info): Likewise.
	(prot_a_output_conf_z_info_list): Likewise.
	(prot_a_output_version_info): Likewise.
	(prot_a_output_num_list): Likewise.
	(prot_a_output_dynamic_session_info): Likewise.
	(prot_a_output_dynamic_session_info_list): Likewise.
	(prot_a_output_l2g_iterator_as_text_list): Likewise.
	(prot_a_output_text_mapping): Likewise.
	(prot_a_output_memory_info): Likewise.
	* src/server/param.h (struct kom_par): Removed ip_mux_port,
	num_ip_mux_port and num_ip_client_port.
	* src/server/isc-interface.h (ISC_UDGTYPE): Use "struct
	connection" instead of "struct mux".
	(ISC_PRINTF_SUPPORT): Don't define it.
	* src/server/internal-connections.c (init_connection): Use
	isc_session instead of mux.
	(kill_client): Likewise.
	* src/server/connections.h (Connection): Replaced mux with isc_session.
	* src/server/connections.c (logout_client): Use ISC instead of the
	removed mux layer.
	(parse_packet): Likewise.
	(parse_unparsed): Likewise.
	(login_request): Likewise.  Don't handle muxes.
	(logout_request): Likewise.
	(message_request): Likewise.
	(mux_handle_packet): Removed.
	(mux_logout): Removed.
	(mux_parse_unparsed): Removed.
	(mux_parse_message): Removed.
	(milli_timevaldiff): New name for former timevaldiff.  Return the
	difference in milliseconds instead of microseconds.
	(toploop): Use milli_timevaldiff instead of timevaldiff.  This is
	a thousand times better at avoiding overflow.  Use isc_puts
	instead of isc_printf.
	* src/server/mux.h: File removed.
	* src/server/mux.c: File removed.
	* src/server/mux-parse.h: File removed.
	* src/server/mux-parse.c: File removed.
	* src/server/Makefile.am (lyskomd_SOURCES): Removed mux-parse.h
	and mux.h.
	(MUX): Removed.  Removed mux.c and mux-parse.c.
	(GENOBJS): Removed $(MUX).
	* doc/mux.proto: File removed.
	* doc/Makefile.am (EXTRA_DIST): Remove mux.proto.
	* configure.in: Remove enable_isc_printf -- we no longer need
	isc_printf.

	Fix a warning message in the testsuite.
	* src/server/testsuite/lyskomd.0/admin-cov.exp: Fixed the
	"unsupported" message: The configure option is named
	--with-debug-calls, not --enable-debug-calls.

1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196
1999-04-25  Per Cederqvist  <ceder@gratia>

	Increase the block size of the l2g structure from 10 to 250.
	* src/server/local-to-global.h (l2g_set_block_size): New function.
	* src/server/local-to-global.c (L2G_BLOCKSIZE): Now a static int
	instead of a define.
	(l2g_set_block_size): New function, that can be called once to
	set the block size
 	(l2g_init): Set the block size to 250 unless it has already been
	set.
	* src/server/testsuite/test-l2g.c (main): Set the block size to 10.

David Byers's avatar
David Byers committed
1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217
1999-04-23  David Byers  <davby@ida.liu.se>

	* src/server/standalone.c (kom_info): Initialize the
	aux_item_list too.

	* src/server/ramkomd.c (initialize): Use kom_log instead of log.

	* src/server/local-to-global.c (l2g_read): Use kom_log instead of
	log.

	* src/server/text.c (text_read_access): Call
	person_text_read_access to do the work.
	(person_text_read_access): New function generalizes
	text_read_access.

	* src/server/manipulate.h: Prototype for person_text_read_access.

1999-04-21  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c (aux_item_find_validator): New function.

1218 1219 1220 1221 1222 1223 1224 1225
1999-04-20  Per Cederqvist  <ceder@gratia>

	Two file descriptors were leaked during startup.
	* src/server/aux-item-def-parse.y (parse_aux_item_definitions):
	Close the config file once it is read.
	* src/server/conf-file.c (read_config): Close the config file once
	it is read.

Per Cederqvist's avatar
Per Cederqvist committed
1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236
1999-04-19  Per Cederqvist  <ceder@gratia>

	New parameter: "Client host".
	* doc/lyskomd.texi (Parameters): Documented "Client host".
	* src/server/server-config.c (parameters): New parameter: "Client
	host".
	* src/server/ramkomd.c (server_init): New argument: host.  Bind
	the specified IP number.
	(initialize): Pass param.ip_client_host to server_init.
	* src/server/param.h (struct kom_par): Added ip_client_host.

1237 1238 1239 1240 1241 1242
1999-04-19  Per Cederqvist  <ceder@lysator.liu.se>

	Test the "% No connections left." message.
	* src/server/testsuite/lyskomd.0/07.exp: Test what happens when
	too many clients try to connect at the same time.

Per Cederqvist's avatar
Per Cederqvist committed
1243 1244 1245 1246 1247 1248 1249
1999-04-18  Per Cederqvist  <ceder@lysator.liu.se>

	More documentation.
	* doc/lyskomd.texi (Parameters): Documented "lyskomd path",
	"savecore path", "Normal shutdown time", "Mail after downtime" and
	"Mail until downtime".
	* doc/Protocol-A.texi (Protocol Version History): Call
Per Cederqvist's avatar
Per Cederqvist committed
1250
	102=set-membership-type was omitted, and later calls were
Per Cederqvist's avatar
Per Cederqvist committed
1251 1252 1253
	misnumbered.
	(map-created-texts): Documented.

1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264
1999-04-18  Per Cederqvist  <ceder@gratia>

	Removed the last hardcoded configuration from updateLysKOM.
	* src/server/updateLysKOM.c (savecore): Use param.core_dir and
	param.savecore_path instead of hardcoding the values.
	* src/server/server-config.c (parameters): New parameter:
	"savecore path".
	(read_configuration): Handle param.savecore_path.
	* src/server/param.h (struct kom_par): New parameter:
	savecore_path.

1265 1266
1999-04-17  Per Cederqvist  <ceder@lysator.liu.se>

1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295
	updateLysKOM now reads the configuration file.
	* src/server/updateLysKOM.c (usage): New function.
	(checkstatus): Use parameters "Normal shutdown time", "Mail after
	downtime" and "Mail until downtime" instead of
	using hard-coded values.  Use "mail" instead of "Mail" to send the
	mail.
	(main): Read the configuration file.  Use parameters "Pid file",
	"Status file" and "lyskomd path" instead of hard-coded values.
	* src/server/server-config.c (param): Moved here from various
	files.
	(parameters): Added "Normal shutdown time", "Mail after downtime",
	"Mail until downtime" and "lyskomd path".
	(read_configuration): Handle param.lyskomd_path.
	* src/server/ramkomd.c: (param): Moved to server-config.c.
	* src/server/dbck.c (param): Moved to server-config.c.
	* src/server/Makefile.am (READ_CONFIG): New variable.
	(komrunning_SOURCES): Use READ_CONFIG to simplify code.
	(updateLysKOM_SOURCES): Added READ_CONFIG.
	* src/server/param.h (struct kom_par): New parameters:
	lyskomd_path, normal_shutdown_time, downtime_mail_start and
	downtime_mail_end.
	* src/server/server-config.c (parameters): Moved a few entries
	around, so that they fit under the various headings.

	Fixes to komrunning.c.
	* src/server/komrunning.c (param): Moved to server-config.c.
	(create_status): Write the name of the user as the first line of
	the status file.  With luck, that is a valid email address.

1296 1297 1298 1299 1300 1301 1302 1303 1304
	Handle many simultaneous clients.
	* src/server/connections.c (login_request): Don't handle the "% No
	connections left" situation.
	(toploop): Handle ISC_EVENT_LOGIN_UNRELOCATED by returning a "% No
	connections left" message and closing the session, the way
	login_request used to do.
	* src/server/ramkomd.c (initialize): Warn if getrlimit and sysconf
	don't agree on the number of possible open files.

1305 1306 1307 1308 1309 1310 1311
1999-04-17  Per Cederqvist  <ceder@gratia>

	Work towards handling more than 250 simultaneous clients.
	* src/server/ramkomd.c (server_init): Use isc configuration 1006
	and isc session configuration 1002.  Fill in fd_relocate with
	PROTECTED_FDS.

1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341
1999-04-17  Per Cederqvist  <ceder@lysator.liu.se>

	Re-implement komrunning in C.
	* src/server/standalone.c (register_jubel): Dummy implementation.
	* src/server/dbck.c (register_jubel): Moved to standalone.c.
	* src/server/dbck-cache.c (kom_info): Moved to standalone.c.
	* src/server/komrunning.c: New file; a reimplementation of
	komrunning.sh in C.
	* src/server/Makefile.am (bin_PROGRAMS): Added komrunning.
	(komrunning_SOURCES): New variable, which among other files
	includes komrunning.c.
	(updateLysKOM_SOURCES): Added pidfile.c.
	(dbck_SOURCES): Added standalone.c.
	* run-support/komrunning.sh: Removed.
	* run-support/Makefile.am (komrunning): Target removed.
	(bin_SCRIPTS): Removed komrunning.
	(EXTRA_DIST): Removed komrunning.sh.
	(MOSTLYCLEANFILES): Removed komrunning.

	Introduce the "Status file" parameter.
	* src/server/server-config.c (parameters): Added "Status file".
	(read_configuration): Handle param.status_file.
	* src/server/param.h (struct kom_par): Added status_file.
	* doc/lyskomd.texi (Parameters): Documented "Status file".

	Move pid file reading to pidfile.c.
	* src/server/updateLysKOM.c (main): Use pidfile to simplify code.
	* src/server/pidfile.h (read_pid_file): New function.
	* src/server/pidfile.c (read_pid_file): New function.

Per Cederqvist's avatar
Per Cederqvist committed
1342 1343
1999-04-15  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
1344 1345 1346 1347 1348 1349 1350
	Document 103=local-to-global.
	* doc/Protocol-A.texi (accept-async): Added the error code
	long-array.
	(add-member): Added a comment.
	(local-to-global): Documented.
	(The User Area): Register WWW-kom.

Per Cederqvist's avatar
Per Cederqvist committed
1351 1352 1353
	Test suite improvement.
	* src/server/testsuite/lyskomd.0/03.exp: Test calls 103 and 104.

1354 1355 1356 1357 1358
1999-04-06  Per Cederqvist  <ceder@gratia>

	Yesterdays changes were incomplete.
	* src/server/ramkomd.c: Include local-to-global.h.

1359 1360 1361 1362 1363
1999-04-05  Per Cederqvist  <ceder@panic.signum.se>

	Explain the Text-Mapping data type.
	* doc/Protocol-A.texi (LysKOM Data Types): Explain Text-Mapping.

1364 1365
1999-04-05  Per Cederqvist  <ceder@gratia>

1366 1367 1368 1369 1370 1371 1372 1373
	Change the external file format of a Local_to_global.
	* src/server/testsuite/l2g.0/09.exp: Adjusted to new external
	format of Local_to_global.
	* db-crypt/db/lyskomd-data: Adapted to new format of
	Local_to_global objects.
	* src/server/local-to-global.c (l2g_read): New file format.
	(put_ulong): New static function.
	(l2g_write): New file format.
Per Cederqvist's avatar
Per Cederqvist committed
1374 1375
	* src/server/testsuite/l2g.0/11.exp: Added lots of test cases for
	l2g_write.
1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445

	Added statistics to Local_to_global.
	* src/server/ramkomd.c (dump_exit_statistics): Call dump_l2g_stats.
	* src/server/local-to-global.h: Comments added and improved.
	(dump_l2g_stats): New function.
	* src/server/local-to-global.c (nr_constructs): New static
	variable, used to gather statistics.  Changed all functions to set
	it where appropriate.
	(nr_l2gs): Likewise.
	(nr_l2gs_peak): Likewise.
	(nr_destructs): Likewise.
	(nr_clears): Likewise.
	(nr_copies): Likewise.
	(nr_joins): Likewise.
	(nr_joined_blocks): Likewise.
	(nr_blocks): Likewise.
	(nr_blocks_peak): Likewise.
	(nr_blocks_sparse): Likewise.
	(nr_blocks_sparse_peak): Likewise.
	(sparse_skip_cost): Likewise.
	(nr_sparse_compactions): Likewise.
	(nr_sparsifications): Likewise.
	(l2g_destruct): Actually fill the destructed object with garbage
	data, unless NDEBUG is defined.
	(dump_l2g_stats): New function.

	Make a lot of functions in ram-output.c static.  Increase const
	awareness.
	* src/server/ram-output.c (foutput_person_0): Added const
	qualifier to the person argument.
	(foutput_person_2): Likewise.
	(foutput_person): Likewise.
	(foutput_conference_2): Added const qualifier to the conf_c
	argument.
	(foutput_aux_flags): Now static.
	(foutput_aux_item): Now static.
	(foutput_aux_item_list): Now static.  Added const qualifier to the
	aux argument.
	(foutput_membership_type): Now static.
	(foutput_string): Now static.
	(foutput_priv_bits): Now static.
	(foutput_personal_flags): Now static.
	(foutput_text_list): Now static.
	(foutput_mark_list): Added const qualifier to the mark_list
	argument.
	(foutput_mark): Now static.
	(foutput_membership_list): Now static.
	(foutput_time): Now static.
	(foutput_member_list): Now static.
	(foutput_member): Now static.
	(foutput_conf_type): Now static.
	(foutput_misc_info): Now static.
	(foutput_ulong): Now static.
	* src/server/ram-output.h: Track changes in ram-output.c.
	* src/include/kom-types.h (Text_mapping): The l2g pointer is
	const.

	Some minor improvements to memory handling.
	* src/server/memory.c (free_conference): Call l2g_destruct.
	(free_person): Likewise.
	* src/server/conference.c (do_delete_conf): Don't call l2g_clear,
	since cache_delete_conf will do so.

	Remove useless compiler warnings.
	* configure.in: Don't use -Wtraditional and -Wnested-externs.

	Test suite improvement.
	* src/server/testsuite/config/unix.exp (lyskomd_death): Collect
	etc/memory-usage in usage.all.

1446 1447 1448 1449 1450 1451 1452
	Test suite fix.
	* src/server/testsuite/config/unix.exp (lyskomd_start): The
	detection of a server compiled with --with-debug-calls was
	broken.

	Test Local_to_global even more.
	* src/server/testsuite/l2g.0/11.exp: Increase coverage even
1453
	further.  Test l2g_clear.
1454 1455 1456
	* src/server/local-to-global.h: Comments improved.
	* src/server/local-to-global.c: Comments improved.

1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470
1999-04-05  Per Cederqvist  <ceder@panic.signum.se>

	Added range-begin and range-end to Text-Mapping.
	* doc/Protocol-A.texi (LysKOM Data Types): Added range-begin and
	range-end to Text-Mapping.
	* src/server/prot-a-output.c (prot_a_output_text_mapping): Emit
	range-begin and range-end.
	* src/server/person.c (map_created_texts): Set result->first to
	the first text number that the user requested.  Don't move it
	forward if the text has been deleted.
	* src/server/text.c (local_to_global): Likewise.
	* src/server/testsuite/lyskomd.0/00.exp: Expect range-begin and
	range-end in Text-Mappings.

Per Cederqvist's avatar
Per Cederqvist committed
1471 1472
1999-04-04  Per Cederqvist  <ceder@panic.signum.se>

1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496
	Merge everything from prot-A.txt into Protocol-A.texi and remove
	prot-A.txt.
	* doc/prot-A.txt: Removed.  Everything in it should now be present
	in Protocol-A.texi.
	* doc/Makefile.am (EXTRA_DIST): Removed prot-A.txt.
	* doc/Protocol-A.texi: Removed all up, next and prev pointers.
	Makeinfo can figure them out automatically.  Fixed proper nesting
	of nodes, and use @Top, so that this work.  Merge everything in
	prot-A.txt into this document:
	(Document Revision History): This is going to be revision 10.0
	which documents protocol version 10.  9.0 was distributed with
	lyskomd 1.9.0.  8.0 was distributed with lyskomd 1.8.0.
	(Protocol Version History): New name for former "Protocol Revision
	History".  Updated the information about version 9.
	(Protocol Design Principles): Node removed.  The "Client-Server
	Dialog" node contains the same information.
	(Client-Server Dialog): Specify the LysKOM port in the example.
	(Simple Data Types): Moved the text about data element separator
	and call terminator to "Client-Server Dialog".
	(user-active): Talk more about when clients should send this.
	(who-is-on-dynamic): Improved the explanation.
	(get-static-session-info): State that the returned information is
	immutable.

Per Cederqvist's avatar
Per Cederqvist committed
1497 1498 1499
	Distribute sigflags.h.
	* src/server/Makefile.am (lyskomd_SOURCES): Added sigflags.h.

1500 1501
1999-04-03  Per Cederqvist  <ceder@lysator.liu.se>

1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555
	Renam do_sync_db to do_statistics.  Use sig_atomic_t instead of
	Bool for variables set from signal handlers.
	* src/server/sigflags.h: New file, containing sig_atomic_t flags.
	* src/server/ramkomd.c: Include "sigflags.h".
	(sighandler_hup): Use 1 instead of TRUE as
	value of go_and_die.
	(sighandler_usr1): Use 1 instead of TRUE as value of
	do_statistics.  Use do_statistics instead of do_sync_db.
	* src/server/connections.h (go_and_die): Declaration moved to
	sigflags.h.
	(do_sync_db): Renamed to do_statistics and moved to sigflags.h.
	* src/server/connections.c (go_and_die): Now sig_atomic_t instead
	of Bool.
	(do_statistics): New name for former do_sync_db.  New type:
	sig_atomic_t instead of Bool.  All users of do_sync_db updated.
	(toploop): Don't call cache_sync when do_statistics is set.
	* src/server/admin.c (shutdown_kom): Set go_and_die to 1, not TRUE.

	Cosmetic code cleanup.
	* src/server/prot-a-parse-arg-c.awk: Insert a blank line between
	the system includes and the local includes.

	Remove the empty function cache_sync.  Rename cache_sync in dbck
	to cache_sync_all.
	* src/server/simple-cache.c (cache_sync): Removed.
	* src/server/logII.c (log): Call cache_sync_all instead
	of cache_sync.
	* src/server/dbck.c (garb_text_file): Call cache_sync_all instead
	of cache_sync.
	(main): Likewise.
	* src/server/dbck-cache.c (cache_sync_all): New name for former
	cache_sync.
	* src/server/cache.h (cache_sync): Function removed.

	Distribution cleanup.
	* src/server/Makefile.am (EXTRA_DIST): Don't distribute logII.c.
	* configure.in: Create src/libraries/regex/doc/Makefile and
	src/libraries/regex/test/Makefile.

	Documentation fixes.
	* doc/lyskomdb.texi (Version 0): next-free-num and next-text-num
	are one greater than the number of existing records.
	(Version 1): The same error probably exists here.  Added comment
	about it.
	* doc/lyskomd.texi (Server Configuration File): Markup fixes.
	(Parameter Types): Markup fixes.
	(Parameters): Markup fixes.
	(Aux-Item Definition File): Markup fixes.
	(Administration): Update the discussion about updateLysKOM, dbck
	and komrunning.  Markup fixes.

	Make all man pages obsolete.  Generate the version number in
	lyskomd.texi automatically.  Make sure that lyskomd.texi and
	dbck.texi includes everyting that was documented in the man pages.
1556 1557 1558 1559
	* mkmi: Remove scripts/mdate-sh, which should be generated by
	automake.
	* doc/man/dbck.8: All documentation removed.  Refer to
	dbck.info.
1560 1561 1562
	* doc/man/lyskom.5: Documentation removed.  Refer to lyskomdb.info.
	* doc/man/updateLysKOM.8: All documentation removed.  Refer to
	lyskomd.info.
1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590
	* doc/dbck.texi (Invoking dbck): Mention that dbck with no
	argument will examine the database without modifying it.
	(General Options): Document -h (aka --help).
	(Format Conversion Options): Minor layout fix.
	(Notes): Typos fixed.
	(Files): Markup fixes.
	* doc/Makefile.am: Break long lines.
	* doc/man/lyskomd.8: All documentation removed.  Refer to
	lyskomd.info.
	* doc/lyskomd.texi: Include version.texi and use @value{VERSION}
	instead of hard-coding the value.
	(Overview): Add Peter Eriksson to the list of signficant
	contributors.  ISC was a piece of very important "enabling
	technology".
	(Parameter Types): Mention that all files are absolute if the
	begin with '/'.
	(Parameters): Use @var{} instead of @i{}.  Markup fixes and other
	minor typo fixes.  The "Log statistics" path is used when the
	server receives a SIGUSR1 signal -- not a SIGHUP!
	(Aux-Item Definition File): The file name was wrong.  Don't use
	@i{}.  Document the "server" keyword.  Mention that permanent
	aux-items will be deleted when the object they belong to are
	deleted.
	(Signals): Removed a note about SIGUSR2 not working on Suns.  It
	should work fine there as well.
	(Files): Don't use @i{}.
	(Bugs): There is no detectable memory leak worth noting.

1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602
1999-04-03  Per Cederqvist  <ceder@gratia>

	The test cases shouldn't fail just because --with-debug-calls
	wasn't enabled.
	* src/server/ramkomd.c (main): Emit a warning message when
	--with-debug-calls is enabled.
	* src/server/testsuite/config/unix.exp (lyskomd_start): Look for
	the warning message about --with-debug-calls, and set debug_calls
	to a true value if it is found.
	* src/server/testsuite/lyskomd.0/admin-cov.exp: Don't attempt to
	use debug calls unless debug_calls is true.

1603 1604
1999-04-02  Per Cederqvist  <ceder@panic.signum.se>

Per Cederqvist's avatar
Per Cederqvist committed
1605 1606 1607 1608
	Fix "make clean".
	* src/server/testsuite/Makefile.am (mostlyclean-local): Remove db
	and etc.

1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630
	Use automake defaults for the Lex and Yacc files, so that the
	distribution works.
	* src/server/Makefile.am (YFLAGS): Set it to "-d" so that we get
	the .h header file.
	(EXTRA_DIST): Removed aux-item-def.l and aux-item-def.y.
	(MAINTAINERCLEANFILES): Removed aux-item-def.tab.h.
	(lyskomd_SOURCES): Added aux-item-def-parse.y,
	aux-item-def-parse.h and aux-item-def-scan.l.
	(DISKOBJS): Removed aux-item-def.tab.c and aux-item-def.lex.c.
	(aux-item-def.tab.c): Target removed.  Rely on automake.
	(aux-item-def.lex.c): Target removed.  Rely on automake.
	* src/server/aux-item-def-parse.y: Rename hack added.  Don't
	redefine yyin and yylineno, since the Lex file no longer uses
	"%option prefix".  Remove blank lines at end of file.
	* src/server/aux-item-def-scan.l: Rename hack added.  Include
	aux-item-def-parse.h instead of aux-item-def.tab.h.  Don't
	redefine yylval and yyerror, and don't use "%option prefix" -- this
	change makes it impossible to have multiple Lex scanners, but on
	the other hand, it makes it possible to use automake.
	* src/server/aux-item-def.l: Renamed aux-item-def-scan.l.
	* src/server/aux-item-def.y: Renamed aux-item-def-parse.y.

1631 1632 1633 1634 1635 1636 1637 1638 1639
	Added some missing files to the distribution.
	* doc/Makefile.am (EXTRA_DIST): Added IDEAS.
	* src/include/Makefile.am (noinst_HEADERS): Added kom-config.h.
	* src/server/Makefile.am (EXTRA_DIST): Added prot-a-is-legal-fnc.awk.
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added
	renumber.el, l2g.0/*.exp, lyskomd.0/*.exp,
	lyskomd.0/summarize.sh,	lyskomd.0/aux-items.conf,
	lyskomd.0/aux-items.cov and lyskomd.0/aux-items.leaks.

1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674
1999-04-02  Per Cederqvist  <ceder@gratia>

	Make it possible to run "make check" even when not building in
	srcdir.
	* src/server/testsuite/config/unix.exp: (lyskomd_start): Run the
 	test suite in the build directory.  Look for files relative to
 	$srcdir or top_srcdir so that they are found properly.
	(aux_item_default_conf_file): Use $top_srcdir to get a full path.
	* src/server/testsuite/config/leaks.exp: Look for exp files in
	$srcdir.
	* src/server/testsuite/lyskomd.0/04.exp: Likewise.
	* src/server/testsuite/lyskomd.0/05.exp: Likewise.
	* src/server/testsuite/lyskomd.0/06.exp: Likewise.
	* src/server/testsuite/lyskomd.0/admin-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/aux-items-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks00.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks01.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks02.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks03.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks04.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks05.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks06.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks07.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks08.exp: Likewise.
	* src/server/testsuite/lyskomd.0/leaks99.exp: Likewise.

	Fix broken tests.
	* src/server/testsuite/lyskomd.0/01.exp: The test could fail due
	to bad timing.  Fixed.

	Makefile fixes.
	* src/server/testsuite/config/Makefile.am (EXTRA_DIST): Added
	leaks.exp.
	(MOSTLYCLEANFILES): Added lyskomd-config.

1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689
1999-03-31  Per Cederqvist  <ceder@gratia>

	Fix bugs in "make dist".
	* doc/Makefile.am (EXTRA_DIST): Removed Makefile.src.

	Dead code removal.
	* src/server/local-to-global.c (find_block_index_key): Blocks can
	never be completely empty.  Code simplified accordingly.
	(l2g_append): Likewise.
	(l2gi_next): Likewise.
	* src/server/ram-parse.c (fparse_info_2): Unreachable code removed.

	Increase coverage of local-to-global.c.
	* src/server/testsuite/l2g.0/11.exp: New file.

Per Cederqvist's avatar
Per Cederqvist committed
1690 1691 1692 1693 1694
1999-03-28  Per Cederqvist  <ceder@link>

	* TODO: Updated according to priorization made by me and David
	Byers.

David Byers's avatar
David Byers committed
1695 1696 1697 1698 1699 1700 1701 1702 1703 1704
1999-03-28  David Byers  <davby@ida.liu.se>

	* src/server/simple-cache.c (cached_conf_exists): Test existance
	in small_conf_arr. Don't go to disk.
	(cached_delete_conf): Free the associated small_conf_stat and set
	small_conf_arr[x] to NULL.

	* run-support/aux-items.conf: Restrict creation of mx-author to
	creation time.

1705 1706 1707 1708
1999-02-06  Per Cederqvist  <ceder@gratia>

	* configure.in: Fixed a syntax error introduced yesterday.

1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744
1999-02-05  Per Cederqvist  <ceder@gratia>

	Don't produce meaningless warnings.
	* configure.in: Remove -Wshadow and -Wcast-qual since they give
	too many false warnings and are of limited use.

	Get rid of some warnings.
	* src/include/kom-types.h (Version_info_internal): const
	qualifiers added.
	* src/server/Makefile.am (version-info.c): Added const qualifier
	to kom_version_info.
	* src/server/version-info.h (kom_version_info): Added const
	qualifier.

	Don't use the wrong member of a union.
	* src/server/prot-a.c (prot_a_reply): Emit
	res->membership_list_old, not res->membership_list, when the
	return type is rt_membership_list_old.

	Remove the L2g_iterator_as_text_list typedef.
	* src/server/text.c (get_map): Use L2g_iterator
 	instead of L2g_iterator_as_text_list.
	* src/server/prot-a-output.h, src/server/prot-a-output.c
 	(prot_a_output_l2g_iterator_as_text_list): Use L2g_iterator
 	instead of L2g_iterator_as_text_list.
	* src/server/person.c (get_created_texts): Use L2g_iterator
	instead of L2g_iterator_as_text_list.
	* src/server/connections.h (Result_holder): The
	l2g_iterator_as_text_list member is now of type L2g_iterator
	instead of the typedef L2g_iterator_as_text_list.
	* src/include/services.h (get_created_texts): Use L2g_iterator
	instead of L2g_iterator_as_text_list.
	(get_map): Likewise.
	* src/include/kom-types.h (L2g_iterator_as_text_list): Typedef
	removed.

David Byers's avatar
David Byers committed
1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823
1999-02-02  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.h (Aux_item_validation_data): New type.
	(Aux_item_validation_function): New type.
	(Aux_item_validator): New type.

1999-01-28  David Byers  <davby@ida.liu.se>

	* src/server/prot-a-parse.c (prot_a_parse_aux_item_list): Check
	array size for -1. Check allocation of result.

	* src/server/person.c (mark_text): Return no-such-text if the user 
	is not allowed to read the text (just like get-text-stat)
	(set_user_area): Return UNDEF_PERS, not UNDEF_CONF.

	* src/include/kom-errno.h (enum kom_errno): Define
	KOM_PERS_EXISTS.

	* src/server/person.c (create_person_generic): Return
	KOM_PERS_EXISTS instead of KOM_CONF_EXISTS

1999-01-27  David Byers  <davby@ida.liu.se>

	* src/server/conference.c (do_create_conf): Don't just DIE if we
	fail to create a conference. Log a message and return an error.

	* src/server/person.c (create_person_generic): Don't just DIE if
	we fail to create a conference. Log a message and return an error.

	* src/server/ram-output.c (foutput_conference_2): Output a space
	before the l2g mapping.
	(foutput_person_2): Same thing here.

1999-01-26  David Byers  <davby@ida.liu.se>

	* src/server/person.c (create_person_old): Add parameter in call
	to create_person.
	(create_person): Added flags parameter.
	(create_person_generic): Set the personal flags from the
	parameter.
	(set_pers_flags): New function to set the personal flags of a
	person.

	* src/server/fncdef.txt: Added set_pers_flags and added pers_flags 
	argument to create_person.

1999-01-25  David Byers  <davby@ida.liu.se>

	* doc/hacking.texi (Parsing Bit Fields): New section.

	* src/server/prot-a-parse.c (prot_a_parse_priv_bits): New
	function. New model for parsing bit fields that's really tolerant
	about the token length. Anything from one bit and up is cool.

	* src/server/prot-a-parse.h: Added prot_a_parse_priv_bits.

	* src/server/connections.h: Added pers_flags to Connection.

	* src/server/internal-connections.c (init_connection): Initializer 
	pers_flags field.

	* src/server/prot-a-parse-arg-c.awk: Added pers_flags.

	* src/server/call-switch.awk: Added pers_flags.

	* src/server/person.c (set_user_area): Return KOM_UNDEF_CONF if
	the person is secret.

	* src/server/conference.c (get_conf_stat_old): Check access with
	<= none and not == none.
	(get_conf_stat_older): Same here.

	* src/server/person.c (get_person_stat): Check access with <= none 
	and not == none
	(get_person_stat_old): Same here.
	(get_created_texts): Same here.
	(map_created_texts): Same here.

1999-01-24  David Byers  <davby@ida.liu.se>
1824

David Byers's avatar
David Byers committed
1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938
	* src/server/connections.c (login_request): Use param.nologin_file 
	instead of hard-coded path.

	* doc/lyskomd.texi (Parameters): Documented Nologin file

	* src/server/server-config.c: Added "Nologin file"

	* src/server/param.h: Added nologin_file.

	* src/server/conference.c (legal_name): Return bad-name on attempt 
	to use null string.

	* src/server/log.c (restart_kom): Do normal exit if AVOID_ABORTS
	is defined.

	* acconfig.h: Added AVOID_ABORTS

	* configure.in: Define AVOID_ABORTS when the user says --with-gcov 

	* src/server/conf-file.c (configure_line): Complain about too many 
	assignments at one too many assignments, not two too many.

	* src/server/simple-cache.c (sync_part): Don't save if
	param.never_save is set.

	* src/server/server-config.c: Compile in never_save always.

1999-01-23  David Byers  <davby@ida.liu.se>

	* src/server/session.c (set_client_version): Use client_data_len
	as max length for client version and client name.

	* doc/lyskomd.texi (Parameters): Documented max client data
	length.

	* src/server/param.h: Added client_data_len.

	* src/server/server-config.c: Added max client data length.

	* src/server/text.c (submit_to): Set err-stat to the last conf in
	the chain, not zero, if we hit the top of the super-conf chain
	without finding something we can write to.
	(sub_recipient): Check for access to the supposed recipient before 
	checking if it is a recipient. This plugs two leaks of secret
	information. 
	(add_footnote): Set err-stat to footnote when failing because of
	not being author to footnote.
	(check_comm): Don't set err-stat. The caller will.

1999-01-22  David Byers  <davby@ida.liu.se>

	* src/server/text.c (create_text_check_misc): Return no-such-text
	if no read access to footnoted text. Check read access before
	checking anything else to avoid leaking secret information.

	* src/server/membership.c (fast_access_perm): fast_access_perm
	always returned read_protected for rd_prot conferences, even if
	the viewer was the supervisor. Fixed.

	* src/server/text.c (text_read_access): If an open conf is a bcc
	recpt, anyone can see the text.

	* doc/Protocol-A.texi (add-recipient): Added error code
	access-denied.

	* src/server/text.c (create_text_check_misc): Don't set
	kom_errno if it was set in submit_to.
	(submit_to): Set kom_errno here instead of in the caller.
	(add_recipient): Return KOM_ACCESS if we are not allowed to write
	to the target conference.

	* doc/Protocol-A.texi (Error Codes): Fxied speling error

1999-01-21  David Byers  <davby@ida.liu.se>

	* src/server/text.c (recp_sent_by): Fixed error message.
	(do_create_text): Fixed speling erorr

	* doc/lyskomd.texi (Parameters): Added documentation for max
 	conferences and max texts.

1999-01-19  David Byers  <davby@ida.liu.se>

	* src/server/text.c (do_create_text): Pass time to
	create_text_add_miscs to ensure correct timestamp.
	(create_text_add_miscs): Set last_written to correct 
	timestamp.

	* src/server/conf-file.c (assign_ulong): New function.

	* run-support/config: Added max_confs and max_texts to default
	config file.

 	Remove compiled-in size limits.
	* src/server/dbck-cache.c (init_cache): Dynamically allocate
	pers_arr, conf_arr, text_arr and name_list.

	* src/server/dbck.c: Dynamically alloc person_scratchpad in
	init_person_scratchpad.

	* src/server/simple-cache.c (init_cache): Allocate the
	small_conf_arr.
	(cached_create_conf): Use param.max_conf, not MAX_CONF
	(cached_create_text): Use param.max_text, not MAX_TEXT
	(init_cache): Use param.max_conf and param.max_text, not MAX_CONF
	and MAX_TEXT

	* src/server/aux-items.c: Moved initialization of sent_at to
	prepare_aux_item_list from other functions.

	* src/server/log.h: Changed names from log to kom_log to avoid
	shadowing log in math.h. 

1999-01-18  David Byers  <davby@ida.liu.se>
1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979

	* src/server/testsuite/config/unix.exp (suspend_client): New
	function. Suspends reading from lyskomd.
	(resume_client): New function. Resumes reading.

	* src/server/testsuite/.cvsignore:  Added .da, .bb, .bbg and .da
	files.

	* src/libraries/libansi/.cvsignore: Added .da, .bb, .bbg and .da
	files.

	* src/libraries/libmisc/.cvsignore: Added .da, .bb, .bbg and .da
	files.

1999-01-17  David Byers  <davby@ida.liu.se>

	* src/server/conference.c: Don't allow change to forbid_secret if
	there are secret members.

	* src/server/testsuite/tcpconnect.py (fdset): Added command
 	#suspend socket to stop the relay from reading from the socket, to
 	simulate a communications failure of sorts. Added #resume socket
 	to reopen communications.

1999-01-16  David Byers  <davby@ida.liu.se>

	* src/server/debug.c: New file.
	(get_memory_info): Moved here from admin.c.

	* src/server/Makefile.am (ATOMS): Added debug.c

	* src/server/person.c (create_person_generic): Don't autologin
	unless do_auto_login is true
	(create_person_old): Set do_auto_login to true in call to
	create_person_generic.
	(create_person): Set do_auto_login to false in call to
	create_person_generic. 

	* src/server/connections.c (logout_client): Send async logout if
	the session is not logged in.

1980 1981
1999-01-15  David Byers  <davby@ida.liu.se>

1982 1983 1984 1985 1986 1987 1988 1989 1990
	* src/server/send-async.c (async_new_name): Send new-name only to
	clients with the appropriate privileges.

	* src/server/membership.c (fast_access_perm): Only check priv bits 
	if the viewer is ACTPERS or ACT_P
	(access_perm): Ditto.

	* src/server/manipulate.h (ENA_C): New macro.

1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
	* configure.in: New argument --with-optimization

	* src/server/conference.c (legal_name): Set err_stat when
	returning KOM_LONG_STR.

	* src/server/text.c (do_create_text): Set err_stat when returning
	KOM_LONG_STR.

	* src/server/aux-item-def.y: Never add disabled items to the
	definition list. 

	* src/server/admin.c (send_message): Set err_stat to
	param.broadcast_len.

2005 2006
1999-01-14  David Byers  <davby@ida.liu.se>

2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017
	* src/server/connections.h: Added Memory_info to Res_type and
	Result_holder to be compiled if DEBUG_CALLS is defined.

	* src/server/admin.c (debug_info): New function to get memory
	usage stats.

	* src/server/prot-a.c (prot_a_reply): Output memory_info

	* configure.in: Check for mallinfo if we do debug calls.
	Substitute EFENCE=1 if we use efence.

2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102
	* src/server/session.c (who_is_on): Changed for loops to while
	loops to deal with new semantics of session 0 and to make the code 
	clearer. (who_is_on_ident): Ditto. (who_is_on_dynamic): Ditto.
	(who_is_on_old): Ditto.

	* src/server/internal-connections.c (get_conn_by_number): Always
 	interpred session 0 as the current session. 
	(traverse_connections): Explicit check for session_no == 0 since
 	change in get_conn_by_number.

	* src/server/session.c (disconnect): disconnect(0) disconnects the 
	current session

	Did some work on mail import and export (that jsk should have
	taken care of. Grrrr....)
	* doc/Protocol-A.texi (Predefined Aux-Item Types): Rewrote
	documentation for mail import and export aux-items. Wrote a
	chapter on mail import and export.

	* run-support/aux-items.conf: Added aux-items for mail import and
	export. 

	* doc/Protocol-A.texi: Removed all @codes surrounding
	cross-references since texinfo chokes on them.

	* doc/hacking.texi (Notes for fncdef.txt): Added notes on
	fncdef.txt.

1999-01-13  David Byers  <davby@ida.liu.se>

	Handle #ifdef/#endif and empty lines in fncdef.txt
	* src/server/fncdef.txt: Added debug_info. This call does NOTHING
	at the moment. It is just a proof of concept. It will do stuff
	later.

	* src/server/prot-a-parse-arg-h.awk: Handle #ifdef and #endif and
	empty lines.

	* src/server/fnc-def-init.awk: Ditto.

	* src/server/prot-a-is-legal-fnc.awk: Ditto.

	* src/server/call-switch.awk: Ditto.

	* src/server/prot-a-parse-arg-c.awk: Ditto.

	* src/server/com-h.awk: Ditto.

	* acconfig.h: Added DEBUG_CALLS

	* configure.in: Added option --with-efence to link with efence.
	Added option --with-debug-calls to define DEBUG_CALLS when
	compiling.

	Arranged things so we have to put a call number into the
	fncdef.txt file. This makes call numbers more explicit. It is also 
	possible to have non-contiguous call numbers.
	* src/server/prot-a.c (prot_a_parse_packet): Use function_index
	field of connection to access parsers etc.

	* src/server/connections.c: Added num_fnc_defs

	* src/server/prot-a-parse-arg-h.awk: Updated for new format.

	* src/server/connections.c (dump_statistics): Changed the format
	of the statistics file to output function number before the call
	number.

	* src/server/connections.h: New field function_index
	Added function field to Fnc_descriptor.

	* src/server/call-switch.awk: Updated for new format in fncdef.txt 

	* src/server/com-h.awk: Updated for new format in fncdef.txt

	* src/server/prot-a-parse-arg-c.awk: Updated for new format in
	fncdef.txt.

	* src/server/prot-a.c (prot_a_is_legal_fnc): Removed hard-coded
	switch and replaced it with include of prot-a-is-legal-fnc.incl

	* src/server/prot-a-is-legal-fnc.awk: New function.

	* src/server/Makefile.am: Add rules for prot-a-is-legal-fnc.incl

2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191
1999-01-12  David Byers  <davby@ida.liu.se>

	* src/server/testsuite/lyskomd.0/03.exp: Updated membership tests.
	
	* src/server/testsuite/lyskomd.0/05.exp: Updated membership tests.

	* src/server/membership.c (do_get_membership): Set the position
	field in the returned structure.
	(locate_membership_and_position): Removed.
	(locate_membership): Set the position field in the membership.

	* src/server/memory.c (init_membership): Init position field.

	* src/include/kom-types.h: Removed Extended_Membership. Added
	position field to Membership.

	* src/server/connections.h: Removed Extended_Membership.

	* src/server/prot-a.c (prot_a_reply): Removed
	rt_extended_membership.

	* src/server/prot-a-output.c (prot_a_output_membership): Output
	membership position.

1999-01-08  David Byers  <davby@ida.liu.se>

	* db-crypt/db/lyskomd-data: Updated database with keep_commented
	field.

1999-01-07  David Byers  <davby@ida.liu.se>

	* src/server/person.c (create_person_generic): Initialize
	keep_commented.

	* src/server/memory.c (copy_conference): Copy keep_commented.
	(init_conference): Initialize keep_commented.

	* src/server/dbck.c (delete_misc): Moved initialization of ready
	to avoid spurious compiler warning.

	* src/server/text.c (do_delete_misc): Moved initialization of
	ready to avoid spurious compiler warning.

	* src/server/simple-cache.c: Changed sync_next to unsigned to get
	rid of compiler warnings.
	(save_one_conf): Output sync_next as unsigned.
	(save_one_text): Ditto.
	(init_cache): Move initialization of done, read_text_no and
	read_conf_no to avoit spurious compiler warning.
	(init_cache): Initialize c for same reason.

	* src/server/cache-node.c: Added initializer for s.snapshot in
	EMPTY_CACHE_NODE.

	* src/server/cache-node.h: Removed saved_sirty [sic] flag from
	cache_node. It wasn't used anywhere.

	* src/include/rcs.h (USE): Use __typeof__ to avoid compiler
	warnings. This macro only does something when __GCC__ is two or
	more, in which case __typeof__ exists, so it should be safe.

	* src/server/server-config.c: Added default_keep_commented to
	parameters.

	* src/server/param.h: Added default_keep_commented to kom_par.

	* src/server/conference.c (do_create_conf): Initialize
	keep_commented

	* doc/lyskomd.texi (Parameters): Documented Default keep commented 
	nice.

	* src/include/services.h: Declare set_keep_commented.

	* src/server/conference.c (set_keep_commented): New function.

	* src/server/fncdef.txt: Added set_keep_commented.

	* src/server/prot-a-output.c (prot_a_output_conference): Output
	keep_commented after nice.

	* src/server/ram-parse.c (fparse_conference_2): Parse
	keep_commented.

	* src/include/kom-types.h: New field keep_commented.

	* src/server/ram-output.c (foutput_conference_2): Output
	keep_commented. 

Per Cederqvist's avatar
Per Cederqvist committed
2192 2193 2194 2195 2196
1999-01-01  Per Cederqvist  <ceder@gratia>

	Use NO_TIME instead of 0.
	* src/server/memory.c (init_membership): Use NO_TIME instead of 0.

2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215
1998-12-31  Per Cederqvist  <ceder@lysator.liu.se>

	Avoid pty buffer size overflow in the test suite.
	* src/server/testsuite/lyskomd.0/03.exp: Split long lines so that
	at most approximately 250 bytes are sent via a pty.  Many
	operating systems have a limit of approximately 256 bytes per
	line.

	Fix test suite typo.
	* src/server/testsuite/config/leaks.exp (check_usage): Fixed a
 	typo: it is an error if the number of strings is use change, not
 	if they stay the same.

	Ignore some generated files.
	* src/server/testsuite/.cvsignore: Ignore lyskomd.*.base,
	lyskomd.*.usage and usage-base.tmp.
	* .cvsignore: Ignore config.h, config.h.in, stamp-h and
	stamp-h.in.

David Byers's avatar
David Byers committed
2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228
1998-12-30  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.h: Removed ADD_AUX_ITEM macro.

	* src/server/aux-items.c (aux_inherit_items): Fixed memory leak.

	* src/server/ramkomd.c (free_kom_info): New function.
	(main): Call it so that memory usage reported at end of session is 
	not dependent on the length of the aux-item list attached to
	kom_info since that messes up testing for memory leaks.

	* doc/lyskomd.texi: Added this file. Finished writing it too.

2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255
1998-12-29  David Byers  <davby@ida.liu.se>

	* src/server/testsuite/config/unix.exp (lyskomd_start): Added
	optional third argument for stuff to put at the end of the config
	file.

	* src/server/prot-a-send-async.c (prot_a_async_new_membership):
	Send the correct header.

	* src/server/membership.c (add_member_common): Added calls to
	send_async_new_membership.
	(send_async_new_membership): Send message to the right recipients.

1998-12-28  David Byers  <davby@ida.liu.se>

	* src/server/membership.c (add_member_old): Don't set invitation
	bit here. It is dealt with in add_member_common.
	(do_change_priority): Don't change priority to zero if we are
	being called from old functions. Just fake the passive bit.
	(locate_membership_and_position): Return the correct position of
	the membership.

1998-12-27  David Byers  <davby@ida.liu.se>

	* doc/Protocol-A.texi (Error Codes): Added
	invalid-membership-type.

David Byers's avatar
David Byers committed
2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349
1998-12-26  David Byers  <davby@ida.liu.se>

	* doc/man/lyskomd.8 (value): Documented regexps use collate
	table.

	* src/server/param.h: Added regex_use_collate_table.

	* src/server/server-config.c: Added regexps use collate table.

	* src/server/regex-match.c (lookup_regexp): Set translation table
	for regex according to regex_use_collate_table option.

	* src/server/manipulate.h: New function declaration.

	* src/server/membership.c (locate_membership_and_position): New
	function. 
	(locate_membership): Use it.

	* src/server/person.c 	(do_query_read_texts): New function.
	(query_read_texts_old): Use it. (query_read_texts): Use it.

	* src/server/prot-a-output.h(prot_a_output_extended_membership):
	New function declaration.

	* src/server/prot-a-output.c (prot_a_output_extended_membership):
	New function.

	* src/server/prot-a.c (prot_a_reply): Added
	rt_extended_membership.

	* src/include/kom-types.h: New type Extended_Membership.

	* src/server/connections.h: Added extended_membership to
	Result_holder. Added rt_extended_membership to Res_type

	* src/include/services.h: Declare query_read_texts to take an
	Extended_Membership

	* doc/Protocol-A.texi (query-read-texts): Documented that this
	function returns the position as well as the membership.

1998-12-25  David Byers  <davby@ida.liu.se>

	* README: Updated clients information.

	* src/server/membership.c (set_membership_type): Removed F-word
	from comment. Inserted F-abbreviation instead :-)

	* src/server/conference.c (get_uconf_stat): Removed FIXME after
	fixing fast_access_perm.

	* src/server/membership.c (fast_access_perm): Set kom_errno if we
	can't find the conference conf_no.

	* src/server/membership.c (do_get_members): Don't filter secret
	memberships if we have privilege bits set.

	* doc/Protocol-A.texi (Error Codes): Fixed error in documentation
	of secret-public

1998-12-24  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c (system_add_aux_item_list): Call add
	triggers
	(check_delete_aux_item_list): Return KOM_AUX_PERM if an item to
	delete is mission. This is in accordance with the documentation.

	* src/server/aux-items.h (INFO_OBJECT_TYPE): New constant.

1998-12-23  David Byers  <davby@ida.liu.se>

	* src/server/testsuite/lyskomd.0/03.exp: Updated test 1010 for
	item 27.
	Updated test 1017 for asyncs 16, 17 and 18
	Updated test 1020 for asyncs 16, 17 and 18
	Updated test 1022 for asyncs 16, 17 and 18
	Updated test 1024 for asyncs 16, 17 and 18
	In test 1032 updated async messages to show the bcc recpt. This is 
	because of the change to make bcc recpts visible to the creator
	and to all when target is an open conference.	
	Added sleep 2 before test 1310. Otherwise test 1311 may fail since 
	one of the clients has not been idle for long enough (lyskomd is
	OK.)
	Updated test 1333 to not show deleted items
	Similar in 1334, 1335 and 1339.

	* src/server/testsuite/lyskomd.0/01.exp: Updated
	query-predefined-aux-items test for item 27

1998-12-22  David Byers  <davby@ida.liu.se>

	* src/server/conf-file.c (MAXLINE): Increased line length limit to 
	1000 characters

Per Cederqvist's avatar
Per Cederqvist committed
2350 2351 2352 2353 2354
1998-12-22  Per Cederqvist  <ceder@gratia>

	One more test.
	* src/server/testsuite/lyskomd.0/03.exp: Test call 99.

2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372
1998-12-20  Per Cederqvist  <ceder@gratia>

	More tests.
	* src/server/testsuite/lyskomd.0/03.exp: Test call 95-98.

	Speed up regexp matching a little.
	* src/server/regex-match.c (lookup_regexp): Attempt to allocate a
	fastmap.

	The invitation bit should not be set when a user himself joins a
	conference.
	* src/server/membership.c (add_member_old): Never set the
	invitation bit when a user adds himself to a conference.

	Avoid too long lines in the documentation.
	* doc/Protocol-A.texi (modify-system-info): Remove whitespace to
	avoid too long lines in the generated info file.

David Byers's avatar
David Byers committed
2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388
1998-12-17  David Byers  <davby@ida.liu.se>

	* src/server/testsuite/config/Makefile.am (lyskomd-config): Use
	aux-items.conf in this directory instead of in run-support.

	* src/server/text.c (modify_text_info): Call commit_aux_item_list.

	* src/server/conference.c (modify_conf_info): Call
	commit_auc_item_list.

	* src/server/admin.c (modify_server_info): Call
	commit_aux_item_list.

	* src/server/aux-items.c (commit_aux_item_list): New function to
	really delete aux_items.

2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404
1998-11-14  Per Cederqvist  <ceder@gratia>

	Fixed another uninitialized memory problem: the allow_anon,
	reserved1, reserved2 and reserved3 bits of the Conf_type was not
	always properly initialized.
	* src/server/person.c (create_person_generic): Initialize
 	allow_anon, reserved1, reserved2, and reserved3.
	* src/server/memory.c (init_conf_type): Initialize allow_anon,
	reserved1, reserved2, and reserved3.
	* src/server/prot-a-parse.c (prot_a_parse_conf_type): Let
	allow_anon default to 1, not 0.  We really should have a way to
	let it default to unset, so that a set-conf-type that only
	specifies four bits doesn't alter the remaining bits.
	* src/server/testsuite/lyskomd.0/03.exp: Set allow_anon, and
	expect it to be set.  Test call 92-94.

2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417
1998-11-09  Per Cederqvist  <ceder@gratia>

	Fixed an uninitialized memory problem.
	* src/server/memory.c (init_conference): Initialize highest_aux
	and expire to 0.
	* src/server/conference.c (do_create_conf): Initialize expire to 0.

	Avoid symbols with global linkage.
	* src/server/aux-items.c (aux_item_triggers): Now static.
	
	One more test case.
	* src/server/testsuite/lyskomd.0/03.exp: Test call 91.

2418 2419 2420 2421 2422 2423 2424 2425 2426 2427
1998-11-09  Per Cederqvist  <ceder@gratia>

	More test cases.
	* src/server/testsuite/lyskomd.0/03.exp: Test calls 86-90.

	Minor fixes to the documentation.
	* doc/Protocol-A.texi (create-text): This call can never generate
	the error ``anonymous-rejected''.
	(create-anonymous-text): Avoid too long lines.

2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441