ChangeLog 202 KB
Newer Older
1
2
3
4
5
1999-07-25  Kent Engström  <kent@lysator.liu.se>

	Fixed inconsistent format for aux-item mx-date.
	* run-support/aux-items.conf: change the validation of
	aux-item mx-date to the format specified in Protocol-A.texi.
6
	* src/server/testsuite/leaks.0/lots-aux-items.conf: Ditto.
7

8
9
10
11
12
13
14
15
16
	Experience from writing a mail importer.
	* doc/Protocol-A.texi: made definition of address aux-items
	clearer (after a discussion in LysLysKOM), rewrote a lot of
	the text on mail import.

	Miscellaneous documentation fixes.
	* doc/Protocol-A.texi (get-map): this request is indeed
	obsolete as of version 10 of ProtocolA .
	
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1999-07-25  Per Cederqvist  <ceder@lysator.liu.se>

	* Release 2.0.3.

	* NEWS: Document version 2.0.3.
	* configure.in: Set version number to 2.0.3.
	* versions (SERVER-VERSION): 2.0.3.
	(SERVER-COMPAT-VERSION): 20003.

	Looking up the empty name still caused a core dump.
	* src/server/simple-cache.c (cached_lookup_name): Leaving
	uninitialized data in the result is almost as bad as following the
	NULL pointer.  The result may contain fewer than no_of_match_info
	entries -- and now the code attempts to handle it properly.
	* src/server/testsuite/lyskomd.0/03.exp: Test for name lookup of
	the empty string when a conference has been deleted.
	* src/server/testsuite/config/unix.exp (lyskomd_start): Arrange to
	always test for eof from lyskomd in expect_after, and fail if it
	is detected.

	Added missing newlines in restart_kom format strings.
	* src/server/conference.c (lookup_z_name): Added a missing newline
	in a restart_kom format string.
	(do_create_conf): Likewise.

Per Cederqvist's avatar
Per Cederqvist committed
42
43
1999-07-24  Per Cederqvist  <ceder@lysator.liu.se>

44
45
	Implemented splitkomdb.  This is highly experimental and not yet
	documented.
Per Cederqvist's avatar
Per Cederqvist committed
46
47
48
49
50
51
52
53
	* src/server/splitkomdb.c: New file.
	* src/server/Makefile.am (bin_PROGRAMS): Added splitkomdb.
	(splitkomdb_SOURCES): New variable.
	* src/server/param.h (struct kom_par): Added backup_dir.
	* src/server/server-config.c (parameters): Added "Backup export
	directory".
	(read_configuration): Handle param.backup_dir.

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
1999-07-23  Per Cederqvist  <ceder@lysator.liu.se>

	* Release 2.0.2.

	* NEWS: Document version 2.0.2.
	* configure.in: Set version number to 2.0.2.
	* versions (SERVER-VERSION): 2.0.2.
	(SERVER-COMPAT-VERSION): 20002.

	* doc/Protocol-A.texi: This is revision 10.2.
	(Document Revision History): This is revision 10.2.

	Looking up the empty name caused a core dump.
	* src/server/simple-cache.c (cached_lookup_name): Don't follow the
	NULL pointer.
	* src/server/conference.c (match_table): Don't declare it here.

1999-07-20  Per Cederqvist  <ceder@lysator.liu.se>

	* doc/Protocol-A.texi (Predefined Aux-Item Types): Typo fixed --
	there is nothing called mx-o.

1999-07-14  Kent Engström  <kent@lysator.liu.se>
Kent Engström's avatar
Kent Engström committed
77
78
79
80
81
82
83
84

	Documentation fixes.
	* doc/Protocol-A.texi (Protocol Requests): set-info sets server
	information.
	(set-last-read): last-read is a Local-Text-No.
	(set-info): Info-Old is returned by get-info-old.
	(async-logout): Not called async-async-logout.

Kent Engström's avatar
Kent Engström committed
85
86
87
1999-07-13  Kent Engström  <kent@lysator.liu.se>

	Documentation fixes.
Kent Engström's avatar
Kent Engström committed
88
	* doc/Protocol-A.texi: Corrected spelling errors, etc.
Kent Engström's avatar
Kent Engström committed
89
90
91
	(Conference Type): reserved1 is now called forbid-secret.
	(lookup-z-name): use correct call in examples.

92
1999-07-12  Per Cederqvist  <ceder@lysator.liu.se>
93

94
	* Release 2.0.1.
95
96
97
98
99
100
101
102
103
104
105
106
107
108
	
	* doc/Protocol-A.texi (Document Revision History): Release date
	set to 1999-07-12.

	The performance fix of 1999-07-06 introduced an extra newline in
	the files.  Fix.
	* src/server/simple-cache.c (copy_file): Don't emit duplicate
	newlines.

	Remove false warnings.
	* src/server/membership.c (access_perm): Fixed the logic error
	that caused several false warnings to be logged.

1999-07-11  Per Cederqvist  <ceder@lysator.liu.se>
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133

	Fix the documentation of add-recipient, async-new-recipient and
	async-sub-recipient.
	* doc/Protocol-A.texi (Simple Data Types): ENUMERATIONs can be
	inherited from SELECTIONS.
	(LysKOM Data Types): Define Info-Type.
	(add-recipient): The recpt-type argument is an Info-Type, not a
	complete Misc-Info.
	(async-new-recipient): The type argument is an Info-Type, not a
	complete Misc-Info.
	(async-sub-recipient): Likewise.
	(Document Revision History): Mention Info-Type.

	Don't overwrite installations that have lyskomd-backup but no
	lyskomd-data.
	* db-crypt/db/Makefile.am (install-data-local): Don't install the
	database if lyskomd-backup exists.  Don't install it if any of the
	databases exist.

	Fixed a database error that caused damage to conferences.
	* src/server/simple-cache.c (save_one_conf): Fixed a serious bug
	introduced 1997-10-23 when the (as yet unused) FASTSAVE code was
	written.  Changes made to conferences could in some cases be
	forgotten.

Per Cederqvist's avatar
Per Cederqvist committed
134
135
136
137
138
	Fixed a harmless Y2k bug.
	* src/server/log.c (kom_logv): Log the year 2000 as "00", not
	"100".
	(kom_log): (non-HAVE_VPRINTF version) Likewise.

139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
	Release preparations.
	* NEWS: Added an entry for the 2.0.1 release.
	* versions (SERVER-VERSION): 2.0.1.
	(SERVER-COMPAT-VERSION): 20001.
	* configure.in: Set version number to 2.0.1.
	* README: Recommend running dbck when upgrading from 2.0.0.

	Regexps are always case sensitive.
	* doc/Protocol-A.texi: This is revision 10.1 of the specification.
	(Overview): Protocol versions never have a suffix.
	(Document Revision History): Wrote entry for 10.1.
	(Name Expansion): Regexps are case sensitive.
	(re-lookup-person): Tempus changed.
	(re-lookup-conf): Tempus changed.
	(re-z-lookup): Regexps are case sensitive.
	* src/server/param.h (struct kom_par): Removed the
	regex_use_collate_table field.
	* src/server/regex-match.c (lookup_regexp): Never use a translate
	table.
	* src/server/server-config.c (parameters): Removed "Regexps use
	collate table".
	* doc/lyskomd.texi (Parameters): Removed "Regexps use collate
	table".
162
163
164
	* src/server/testsuite/lyskomd.0/03.exp: Don't use "Regexps use
	collate table".
	* src/server/testsuite/lyskomd.0/regexp-match-cov.exp: LIkewise.
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185

	Fixed a minor bug that currently had no effects.
	* src/server/person.c (create_person_generic): Added a missing
	call to mark_conference_as_changed.

	Fixed a buffer overrun.
	* src/server/aux-items.c (aux_item_trigger_mirror_faq): Fixed a
	buffer overflow.
	* src/server/testsuite/lyskomd.0/14.exp: Added a few FAQ aux-item
	tests.

	Code cleanup.
	* src/server/aux-item-def-parse.y (aux_item_def_check_trigger):
	Added static qualifier.
	(aux_item_def_check_validate): Likewise.
	* src/include/kom-types.h (Object_type): Removed the almost unused
	type PERS_OBJECT_TYPE.
	* src/server/aux-items.c (find_linked_aux_item_list): Don't test
	for the non-used PERS_OBJECT_TYPE object type.
	(mark_linked_object_as_changed): Likewise.

186
1999-07-08  Per Cederqvist  <ceder@lysator.liu.se>
187
188
189
190

	Allow the author of a text to change the recipient type.
	* src/server/text.c (add_recipient): Allow the text author to
	change the recipient type.
191
192
193
	* src/server/testsuite/lyskomd.0/14.exp: New file.
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added
	lyskomd.0/14.exp.
194

Kent Engström's avatar
Kent Engström committed
195
196
197
198
199
200
201
202
1999-07-07  Kent Engström  <kent@artemis.hack.org>

	Documentation fixes.	
	* doc/Protocol-A.texi: corrected some spelling errors;
	changed cross-references so that new versions of makeinfo
	will stop complaining; added forbid-secret to the list of
	conference flags above the table.

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

	Remove a few performance problems.
	* src/server/membership.c (access_perm_helper): New argument:
 	wanted_access.  All callers updated.  Avoid calling is_supervisor
 	or is_member if not needed.
	(get_unread_confs): Minor performance improvement: there is no
 	need to call access_perm if pers_no is the logged-in person.
	* src/server/simple-cache.c (copy_file): Use a static buffer
	instead of allocating and releasing a buffer each time this
	function is called.

	Remove dead code.
	* src/server/manipulate.h (IMPL): Unused macro removed.
	* src/server/dbck-cache.c (IMPL): Unused macro removed.
	* src/server/ram-parse.c (fparse_conference_2): Remove dead code
 	that depends on the long-obsolete DISKERR symbol.
	(fparse_conference_0): Likewise.
	(fparse_person_0): Likewise.
	(fparse_person_2): Likewise.
	(fparse_text_stat_2): Likewise.
	(fparse_text_stat_0): Likewise.

226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
1999-07-05  Per Cederqvist  <ceder@gratia>

	Speed up access_perm, is_supervisor and is_strictly_supervisor by
	adding a supervisor field to Small_conf, and using it instead of a
	call to GET_C_STAT.  Remove the Conference argument to the above
	three functions and update all callers.  A few stray calls to
	GET_C_STAT were eliminated in the process.
	* src/include/kom-types.h (Small_conf): Added a supervisor field.
	* src/server/cache.h (cached_get_conf_supervisor): New function.
	* src/server/simple-cache.c (cached_get_conf_supervisor): New
	function.
	(mark_conference_as_changed): Copy the supervisor to the entry in
	small_conf_arr.
	(init_small_conf): Set supervisor.
	(setup_small_conf): Set supervisor.
	* src/server/manipulate.h (access_perm): Removed the victim_c
	argument.
	(is_supervisor): Removed the conf_c argument.
	(is_strictly_supervisor): Removed the conf_c argument.
	* src/server/membership.c (access_perm_helper): New name for
 	former plain_ol_access_perm.  Get rid of call to GET_C_STAT by
 	calling cached_get_conf_type instead.  Removed the victim_c
 	argument from all calls to is_supervisor.
	(plain_ol_fast_access_perm): Removed.
	(access_perm): Removed the victim_c argument.
	(copy_public_confs): Removed the victim_c argument from all calls
 	to is_supervisor.  Removed the victim_c argument from all calls to
 	access_perm.
	(sub_member): Likewise.
	(do_get_members): Likewise.
	(get_unread_confs): Likewise.
	(add_member_common): Likewise, and get rid of a call to GET_C_STAT.
	(do_get_membership): Likewise, and get rid of a call to GET_C_STAT.
	(set_membership_type): Likewise, and get rid of a call to GET_P_STAT.
	* src/server/conference.c (do_create_conf): Call
 	mark_conf_as_changed before checking that ACTPERS is allowed to
 	create aux-items in the conference he is creating.
	(is_supervisor): Removed the conf_c argument.
	(is_strictly_supervisor): Removed the conf_c argument.  Use
 	cached_conf_exists and cached_get_conf_supervisor and eliminate
 	one expensive call to GET_C_STAT.
	(change_name): Removed the victim_c argument from all calls to
 	access_perm.
	(delete_conf): Likewise.
	(lookup_name): Likewise.
	(lookup_z_name): Likewise.
	(do_lookup): Likewise.
	(get_conf_stat_old): Likewise.
	(get_uconf_stat): Likewise.
	(get_conf_stat_older): Likewise.
	(set_presentation): Likewise.
	(set_etc_motd): Likewise.
	(set_conf_type): Likewise.
	(set_garb_nice): Likewise.
	(set_expire): Likewise.
	(set_keep_commented): Likewise.
	(modify_conf_info): Likewise.
	(set_supervisor): Removed the conf_c argument from all calls to
 	is_strictly_supervisor and is_supervisor.
	(set_permitted_submitters): Likewise.
	(set_super_conf): Likewise.
	* src/server/admin.c (send_message): Removed the victim_c
 	argument from all calls to access_perm.
	* src/server/person.c (get_person_stat): Removed the victim_c
 	argument from all calls to access_perm.  Eliminate one call to
 	GET_C_STAT.
	(get_person_stat_old): Likewise.
	(get_created_texts): Removed the victim_c argument from all calls
 	to access_perm.
	(map_created_texts): Likewise.
	(do_query_read_texts): Likewise.
	(set_user_area): Likewise.
	(set_pers_flags): Likewise.
	(set_passwd): Removed the victim_c argument from all calls to
 	is_supervisor.
	* src/server/regex-match.c (lookup_regexp): Removed the victim_c
 	argument from all calls to access_perm.
	* src/server/send-async.c (async_new_name): Removed the victim_c
 	argument from all calls to access_perm.
	* src/server/text.c (submit_to): Removed the victim_c argument
 	from all calls to access_perm and is_supervisor.
	(send_async_sub_recipient): Likewise.
	(recp_sent_by): Likewise.
	(filter_secret_info): Likewise.
	(person_text_read_access): Likewise.
	(delete_text): Likewise.
	(send_async_add_recipient): Likewise.
	(add_recipient): Likewise.
	(sub_recipient): Likewise.
	(sub_comment): Likewise.
	(sub_footnote): Likewise.
	(get_map): Likewise.
	(local_to_global): Likewise.
	* src/server/aux-items.c (aux_item_add_perm): Removed the conf_c
 	argument from all calls to is_strictly_supervisor and is_supervisor.
	(filter_aux_item_list): Likewise.
	(check_delete_aux_item_list): Likewise.
	* src/server/session.c (login_old): Removed the conf_c argument
	from all calls to is_supervisor.
	(login): Likewise.
	(disconnect): Likewise.

328
329
330
331
332
333
1999-07-03  David Byers  <davby@ida.liu.se>

	* src/server/handle-malloc-dump.el (trace-run-programs): Fixed
	timing problems that caused lyskomd to run before gdb was prepared 
	for it.

334
335
336
337
338
339
340
341
342
343
344
345
1999-07-04  Per Cederqvist  <ceder@gratia>

	Prepare for improving access_perm().
	* src/server/membership.c (plain_ol_fast_access_perm): Assert that
	viewer_conn is never NULL.
	(access_perm): Log a warning if called with an unexpected
	wanted_access argument.

	New convenience check targets.
	* src/server/Makefile.am (check-lyskomd): New target.
	(check-leaks): New target.

346
347
348
349
350
351
352
353
354
1999-07-02  David Byers  <davby@ida.liu.se>

	Automatic operation of memory trace analysis:
	* src/server/ram-smalloc.c: Mention automatic analysis. Update the 
	description on how to do it manually (MEMTRACE=file, ATTACH=yes)

	* src/server/handle-malloc-dump.el: Added automatic operation in
	batch mode. Just run -batch and watch the magic happen.

David Byers's avatar
Server:    
David Byers committed
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
1999-07-02  David Byers  <davby@ida.liu.se>

	Some test cases for name lookup:
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added 12 and
	13.exp.

	* src/server/testsuite/lyskomd.0/13.exp: New file. Some name
	lookup tests.

	* src/server/testsuite/lyskomd.0/11.exp: Do the right thing when
	traced allocations are on.

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

	* src/server/dbck.c (main): Stole code from test-l2g.c for when
	traced allocations are on.

	Eliminate the need to call build_matching_info all the time:
	* src/server/simple-cache.c (rebuild_matching_info_entry): New
	function to rebuild a single entry in the matching info table.
	(find_matching_info_index): New function.
	(cached_change_name): Use rebuild_matching_info_entry insead of
	build_matching_info.

	* src/libraries/libcommon/parser.c (parse): Loop until we see a
	zero conf-no instead of an empty name. Just skip empty names.

	* src/server/cache.h (cached_no_of_existing_conferences): Removed
	extern declaration of build_matching_info.

	Eliminate conf_table:
	* src/libraries/libcommon/parser.c: Include kom-types.h so we can
	include parser.h.
	
	* src/server/conference.c: Removed extern declaration of
	conf_table. Added extern declaration of match_table.
	(unique_name): Use match_table, not conf_table.

	* src/server/simple-cache.c: (conf_table): Removed.
	(build_matching_info): Removed conf_table.
	(cached_lookup_name): Use match_table instead of conf_table.
	(free_all_cache): Removed conf_table.

	* src/libraries/libcommon/parser.h (Matching_info): Added conf_no
	field.

1999-06-29  David Byers  <davby@ida.liu.se>

	* doc/Protocol-A.texi (sub-comment): Changed sub-comment from
	obsolete to recommended.

406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
1999-07-01  Per Cederqvist  <ceder@lysator.liu.se>

	Added the ``wanted_access'' argument to access_perm(), removed
	fast_access_perm(), and updated all callers.
	* src/server/manipulate.h (access_perm): New parameter:
	wanted_access.  Never return anything higher than it.  All callers
	updated.
	(fast_access_perm): Removed.  All callers changed to use
	access_perm instead.
	* src/server/membership.c: Pass the new argument wanted_access to
	access_perm().  Use access_perm() instead of fast_access_perm().
	(access_perm): Proof-of-concept implementation using
	plain_ol_access_perm and plain_ol_fast_access_perm.  This needs
	lots of clever speedups.
	* src/server/admin.c: Pass the new argument wanted_access to
	access_perm().  Use access_perm() instead of fast_access_perm().
	* src/server/conference.c: Likewise.
	* src/server/person.c: Likewise.
	* src/server/regex-match.c: Likewise.
	* src/server/send-async.c: Likewise.
	* src/server/text.c: Likewise.

	Turn of async messages during shutdown.
	* src/server/ramkomd.c (main): Turn of async messages during
	shutdown.
	* src/server/testsuite/lyskomd.0/00.exp: Dont expect any async
	messages during server shutdown.
	* src/server/testsuite/lyskomd.0/02.exp: Likewise.
	* src/server/testsuite/lyskomd.0/03.exp: Likewise.
	* src/server/testsuite/lyskomd.0/08.exp: Likewise.

Per Cederqvist's avatar
Per Cederqvist committed
437
438
1999-06-30  Per Cederqvist  <ceder@lysator.liu.se>

439
440
	* README: Talk a little about the config file.

Per Cederqvist's avatar
Per Cederqvist committed
441
442
443
	Broken typo fix fixed.
	* NEWS: Changed "the near feature" to "a future release".

444
445
446
447
448
449
450
451
452
453
454
455
1999-06-28  Per Cederqvist  <ceder@lysator.liu.se>

	Fixed a bug that causes created_texts to contain some deleted
	texts.
	* src/server/text.c (do_delete_text): Don't forget to call
	mark_person_as_changed -- the authors' list of created texts must
	be updated.
	* src/server/testsuite/lyskomd.0/12.exp: Detect the above bug.
	* src/server/testsuite/config/unix.exp (dbck_run): New proc.
	(lyskomd_death): Call dbck_run to check the database after each
	shutdown.

456
1999-06-27  Per Cederqvist  <ceder@lysator.liu.se>
Per Cederqvist's avatar
Per Cederqvist committed
457
458
459

	* Release 2.0.0.

460
461
462
463
464
465
	Port to places such as AIX 4.2 where char is an unsigned type.
	* src/server/dbck.c (main): Use an int to store the return value
	from getopt_long.
	* src/server/dbck-cache.c (init_cache): Use an int to store the
	return value from getc.

466
	Port the test suite to OSF 3.0.
Per Cederqvist's avatar
Per Cederqvist committed
467
468
	* src/server/testsuite/config/unix.exp (stty_init): Quote the ^
	character. Some shells interpret it as a pipe.
469
470
471
	* README: Mention that Python is needed by the test suite.

	Specify more of the behavior of get-unread-confs.
472
473
474
	* doc/Protocol-A.texi (get-unread-confs): Specify the order of the
	returned conference numbers.

475
476
1999-06-26  Per Cederqvist  <ceder@lysator.liu.se>

477
478
479
480
481
482
483
484
485
486
487
488
489
	Port the makefiles and test suite to FreeBSD.
	* src/server/testsuite/Makefile.am (RM): Set it.
	* src/server/Makefile.am (RM): Set it.
	* doc/Makefile.am (RM): Set it.
	* src/server/testsuite/config/unix.exp (unanchored_expect): Don't
	leave an unparsed space behind when an unexpected output appears
	before a prompt.
	* src/server/testsuite/lyskomd.0/01.exp: Don't be confused about
	the newline emitted in the collate table.
	* src/server/testsuite/lyskomd.0/03.exp: Likewise.
	* src/server/testsuite/config/unix.exp (stty_init): Remove
	"-ocrnl" which isn't portable to FreeBSD.

Per Cederqvist's avatar
Per Cederqvist committed
490
491
492
493
	Port the test suite to HP/UX.
	* src/server/testsuite/config/unix.exp (stty_init): Add "-isig
	erase ^- kill ^- werase ^-".

494
495
496
497
498
499
500
	Port the test suite to non-gcc compilers.
	* src/server/testsuite/test-l2g.c (MAXMAPS): Use #define instead
	of "const int" so that the symbol can portably be used as an array
	size.
	(LINSIZE): Likewise.
	(ARGS): Likewise.

Per Cederqvist's avatar
Per Cederqvist committed
501
502
1999-06-26  David Byers  <davby@ida.liu.se>

503
504
505
	* src/include/kom-types.h (Membership_type): Changed all fields
	from Bool to unsigned int.

Per Cederqvist's avatar
Per Cederqvist committed
506
507
508
509
	* src/server/aux-items.c: Removed support for precompiled aux
	items.  It was not currently used, and caused compilation errors
	under HP/UX.

510
511
1999-06-26  Per Cederqvist  <ceder@lysator.liu.se>

512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
	Fix coding error.
	* src/server/aux-items.c (aux_item_add_perm): Don't use
	find_aux_item_definition to set def if def is already set.

	Remove lint found by HP/UX c89.
	* src/server/ram-parse.c (fparse_aux_item_link): Missing
	semicolon added.
	* src/server/ram-output.c (foutput_aux_item_link): Missing
	semicolon added.
	(foutput_mark_list): Declare the function static in all
	declarations, not only some.
	* src/server/aux-items.h (aux_item_validators): This is static,
	so remove it form the header file.
	(aux_item_triggers): Likewise.
	* src/server/aux-items.c (mark_linked_object_as_changed): Missing
	semicolon added.
Per Cederqvist's avatar
Per Cederqvist committed
528
529
530
531
532
533
	* src/server/session.c (create_oldstyle_username): Remove needless
	casts.
	(login_old): Likewise.
	(login): Likewise.
	* HACKING: We use bison 1.27.  1.25 had problems with alloca under
	HP/UX.
534

David Byers's avatar
David Byers committed
535
536
537
538
539
540
541
542
543
544
545
546
547
1999-06-26  David Byers  <davby@ida.liu.se>

	Send new-membership only for new memberships.
	* doc/Protocol-A.texi (async-new-membership): Remove
	documentation that says this message is sent when a membership is
	reprioritized.

	* src/server/testsuite/lyskomd.0/06.exp (shutdown_06): Don't
	expect new-membership when membership is changed.

	* src/server/membership.c (add_member_common): Only send
	new-membership for new memberships, not changed memberships.

548
549
1999-06-25  Per Cederqvist  <ceder@lysator.liu.se>

550
551
552
553
554
555
556
557
558
559
560
561
562
563
	"make check" failed if the source tree was read-only.
	* src/server/testsuite/config/unix.exp (lyskomd_start): Use chmod
	to make sure that the database is writable even if it is copied
	from a read-only tree.

	"make -j install" could fail.
	* run-support/Makefile.am (install-data-local): Depend on installdirs.
	* db-crypt/db/Makefile.am (install-data-local): Depend on installdirs.

	Port to SunOS 4.1.1.
	* src/server/aux-item-def-scan.l: Include <sys/types.h>.
	* configure.in: Check for sig_atomic_t.
	* acconfig.h: Added sig_atomic_t.

Per Cederqvist's avatar
Per Cederqvist committed
564
565
566
567
	Release administrativa.
	* scripts/lyskomd-copyrights: Don't attempt to update copyright
	notices in TeX temporary files.

568
569
570
571
572
573
574
575
576
577
	Documentation fixes.
	* TODO: No showstoppers left.
	* NEWS: Several minor modifications.
	* README: Spelling errors fixed.
	* doc/Protocol-A.texi (mark-text-old): Spelling error fixed.
	(get-text-stat-old): Talk about bcc-recpt.
	(Protocol Requests): Warn that obsolete calls perform
	compatibility magic.  Include the number of the protocol request
	in the printed heading of the corresponding section.
	(set-pers-flags): Fix sectioning error.
Per Cederqvist's avatar
Per Cederqvist committed
578
579
	(get-unread-confs): Clarify that passive memberships are never
	returned.
580
581
582
583
584

	Performance fix.
	* src/server/internal-connections.c: Turn off defensive checks in
	this file.  They cost too much CPU.

585
586
587
588
589
590
591
592
593
594
595
	Release administrativa.
	* doc/Protocol-A.texi (Document Revision History): Update the
	release date for revision 10.0.
	* NEWS: Sort the news.

	The test suite failed when compiled outside the source directory.
	* src/server/testsuite/leaks.0/leaks10.exp: startup_leaks wants a
	relative path to the aux-items.conf file.
	* src/server/testsuite/leaks.0/leaks99.exp: Likewise.

1999-06-24  Per Cederqvist  <ceder@lysator.liu.se>
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620

	Fix messages created by dbck.
	* src/server/dbck.c (garb_text_file): Don't log the message
	"Ready."; the caller also logs it.

	Add trailing newline in format string to kom_log in the following
	functions:
	* src/server/regex-match.c (lookup_regexp):
	* src/server/ramkomd.c (sighandler_usr2):
	* src/server/prot-a-parse.c (prot_a_parse_num_list):
	(prot_a_parse_string):
	(prot_a_parse_aux_item_list):
	(prot_a_parse_misc_info_list):
	* src/server/person.c (do_unmark_text):
	(create_person_generic):
	* src/server/membership.c (mark_as_read):
	(set_membership_type):
	* src/server/dbck.c (main):
	* src/server/dbck-cache.c (cached_flush_text):
	* src/server/connections.c (call_function):
	(toploop):
	* src/server/conference.c (do_create_conf):
	* src/server/aux-items.c (find_linked_aux_item_list):
	(aux_item_validate):

621
622
623
624
625
1999-06-24  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c (aux_item_validate): Do not print the
	regexp that failed to compile since it is gone by this time.

626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
1999-06-23  Per Cederqvist  <ceder@lysator.liu.se>

	The default language is now selectable at configure time.
	* README: Mention --with-language=sv.
	* configure.in: Handle --with-language=sv.
	* db-crypt/db/Makefile.am (LANGUAGE_SUFFIX): New variable.
	(EXTRA_DIST): Added lyskomd-data-en.
	(install-data-local): Install lyskomd-data-en or lyskomd-data,
	depending on LANGUAGE_SUFFIX.
	* db-crypt/db/lyskomd-data-en: New file.

	Remove the unused file tmp-limits.h.
	* src/server/Makefile.am (lyskomd_SOURCES): Removed tmp-limits.h.
	* src/server/tmp-limits.h: Unused file removed.

	* NEWS: More items added.  This should now be fairly complete, but
	it may need restructuring.
	
644
645
646
647
648
1999-06-23  David Byers  <davby@ida.liu.se>

	* src/server/dbck.c (init_person_scratch): Initialize person
	scratchpad entries to NULL.

649
650
1999-06-21  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
651
652
653
654
	Fix the test suite.
	* src/server/testsuite/lyskomd.0/11.exp: Updated to match the log
	messages currently sent by lockdb.c.

655
656
657
658
	Don't send too many async-logout messages.
	* src/server/connections.c (logout_client): Back out the change
	made 1999-01-16; no longer send async-logout if the session is not
	logged in.
Per Cederqvist's avatar
Per Cederqvist committed
659
660
	* src/server/testsuite/lyskomd.0/07.exp: Don't expect async-logout
	when sessions are disconnected.
661
662
663
	* doc/Protocol-A.texi (async-logout): This message is not
	necessarily sent when a session disconnects and nobody is logged
	in.
664

665
666
667
668
669
670
671
672
673
674
1999-06-20  Per Cederqvist  <ceder@lysator.liu.se>

	Release fixes.
	* HACKING: Added a missing call to ./configure.
	* NEWS: Updated the release date.

	Improve log messages regarding database locking.
	* src/server/lockdb.c (lock_db): Clarify log messages.
	* src/server/ramkomd.c (initialize): Write an "exiting" message
	when the lock cannot be obtained.
675

676
677
678
679
680
681
682
	Fix parameters "Jubel" and "Ident-authentication".
	* src/server/server-config.c (parameters): Removed duplicate
	"Ident-authentication".
	* src/server/standalone.c (register_jubel): Don't call abort --
	this gets called from dbck if the config file contains a Jubel.

1999-06-19  Per Cederqvist  <ceder@lysator.liu.se>
683
684
685
686
687
688
689
690
691
692
693

	Save 5 items (configurable) per call.
	* src/server/param.h (struct kom_par): Added saved_items_per_call.
	* src/server/disk-end-of-atomic.c (end_of_atomic): Handle
	param.saved_items_per_call.
	* doc/lyskomd.texi (Parameters): Documented "Saved items per call".
	* src/server/server-config.c (parameters): Added "Saved items per
	call".
	(read_configuration): Check that param.saved_items_per_call is at
	least 1.

694
695
696
697
698
699
1999-06-14  Per Cederqvist  <ceder@cendio.se>

	Track name change of 556450-2507.
	* doc/lyskomd.texi (Overview): Signum Support has a new name:
	Cendio Systems.

700
701
702
703
704
705
706
707
708
709
710
711
712
713
1999-06-13  Per Cederqvist  <ceder@lysator.liu.se>

	Allow at most 128 aux_items of at most 16384 bytes each to be
	added at a single time.
	* src/server/server-config.c (parameters): Added "Max aux_item
	length".  Changed default of "Max aux_items added per call" to
	128.
	* src/server/prot-a-parse.c (prot_a_parse_aux_item): Use
	param.aux_len instead fo param.text_len as the limit for the
	aux-item size.
	* src/server/param.h (struct kom_par): Added aux_len.
	* doc/lyskomd.texi (Parameters): Document "Max aux_items added per
	call".  Lowered the default from "Max aux_items added per call".

David Byers's avatar
Server:    
David Byers committed
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
1999-06-13  David Byers  <davby@ida.liu.se>

	* src/server/testsuite/lyskomd.0/03.exp: Fix test cases for change 
	in aux_item_link_items below.

	* src/server/testsuite/lyskomd.0/aux-items-cov.exp: Fix test cases 
	for change in aux_item_link_items below.

	* src/server/aux-items.c (aux_item_link_items): Creator of linked
	aux item is now the creator of the source item. This gives the
	creator of the source item power over the linked item.

1999-06-11  David Byers  <davby@ida.liu.se>

	* src/server/aux-items.c: Cleared up comment for
	undelete_aux_item_list.

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

	* src/server/text-garb.c: Always include setjmp.h
	
735
736
1999-06-05  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
737
738
739
740
741
742
743
744
745
746
747
748
749
	Test lock files.
	* src/server/testsuite/lyskomd.0/11.exp: New file.
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added
	lyskomd.0/11.exp.
	* src/server/Makefile.am (all-recursive check-recursive): Depend
	on dbck.
	* src/server/lockdb.c (lock_db): Log a message when a stale lock
	is removed.
	* src/server/dbck.c (main): Don't die until a character
	has been read if -d is used.
	* src/server/ramkomd.c (initialize): Don't die until a character
	has been read if -d is used.

750
751
752
753
754
755
756
757
758
	text-garb.c failed to compile unless --with-debug-calls was used.
	* src/server/text-garb.c: Always include <setjmp.h>, since it is
	needed by connections.h.

	strdup() is no longer used, so a replacement function is not
	needed.
	* configure.in: Commented out AC_REPLACE_FUNCS(strdup).
	* src/libraries/libansi/Makefile.am (EXTRA_DIST): Added strdup.c.

David Byers's avatar
Server    
David Byers committed
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
1999-06-05  David Byers  <davby@ida.liu.se>

	* regexp-match-cov.exp: New test case.

	* src/server/regex-match.c (lookup_regexp): Don't use strdup to
	copy the collate table.

	* src/server/text.c (modify_text_info): Check for read access on
	text. 

	* src/server/conference.c (modify_conf_info): Check for secret
	confs.

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

	* src/server/text.c (add_comment): Moved access checks to avoid
	leaking information. 
	(add_footnote): Same here.

	* src/server/membership.c (set_membership_type): Move permission
	checks to avoid leaking information.

	* doc/lyskomd.texi (Adding a New Protocol Request): Added notes on 
	CHK_CONNECTION, CHK_LOGIN and how to avoid leaking secret
	information.

	* src/server/text.c (add_recipient): Moved GET_X_STAT and
	permission checks around to avoid leaking secret information.

	* src/server/text-garb.c (start_garb): Same here.

	* src/server/debug.c (get_memory_info): Call CHK_CONNECTION.
	(backdate_text): Same here.

	* src/server/aux-items.c (query_predefined_aux_items): Call
	CHK_CONNECTION.

	* src/server/admin.c (get_info_old): Call CHK_CONNECTION.
	(get_version_info): Same here.
	(set_info): Same here.
	(set_motd_of_lyskom): Same here.
	(sync_kom): Same here.

	* src/server/session.c (get_time): Call CHK_CONNECTION.
	(who_is_on_old): Same here.

	* src/server/text.c (local_to_global): Moved CHK_CONNECTION to
	very start of function.
	(get_last_text): Call CHK_CONNECTION.

	* src/server/person.c (set_priv_bits): Call CHK_CONNECTION.

	* src/server/session.c (get_client_version): Call CHK_CONNECTION.
	(get_client_name): Same here.
	(get_session_info): Same here.
	(get_session_info_ident): Same here.
	(get_static_session_info): Same here.

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
1999-06-04  Per Cederqvist  <ceder@lysator.liu.se>

	Clean up file inclusion.  Avoid including files from .h files.
	Avoid underscores in dubious places.
	* src/server/admin.c: Don't include <stdarg.h>.
	* src/server/conf-file.c: Likewise.
	* src/server/conference.c: Likewise.
	* src/server/connections.c: Likewise.
	* src/server/dbck-cache.c: Likewise.
	* src/server/internal-connections.c: Likewise.
	* src/server/membership.c: Likewise.
	* src/server/memory.c: Likewise.
	* src/server/person.c: Likewise.
	* src/server/prot-a-parse.c: Likewise.
	* src/server/ram-output.c: Likewise.
	* src/server/ram-parse.c: Likewise.
	* src/server/ramkomd.c: Likewise.
	* src/server/regex-match.c: Likewise.
	* src/server/rfc931.c: Likewise.
	* src/server/send-async.c: Likewise.
	* src/server/server-config.c: Likewise.
	* src/server/session.c: Likewise.
	* src/server/simple-cache.c: Likewise.
	* src/server/text-garb.c: Likewise.
	* src/server/text.c: Likewise.
	* src/server/testsuite/test-l2g.c: Include "kom-types.h".
	* src/server/local-to-global.h: Don't include "kom-types.h".
	* src/server/log.h: Don't include <stdarg.h>.  Don't declare
	kom_logv.  Don't use leading underscores or double underscores in
	symbols we define.
	* src/server/log.c (kom_logv): Now static.
	* src/include/compiler.h: Don't use leading underscores or double
	underscores in symbols we define.
	* src/include/kom-errno.h: Likewise.
	* src/include/kom-types.h: Likewise.
	* src/include/misc-types.h: Likewise.
	* src/include/services.h: Likewise.

	Distribute new test suite files.
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added
	lyskomd.0/09.exp and lyskomd.0/10.exp.

	Some systems lack strdup.
	* configure.in: Added AC_REPLACE_FUNCS(strdup).
	* src/libraries/libansi/strdup.c (strdup): Replacement implementation.

Per Cederqvist's avatar
Per Cederqvist committed
863
864
865
866
867
868
1999-05-31  Per Cederqvist  <ceder@gratia>

	Fixed typo in the test suite.
	* src/server/testsuite/lyskomd.0/09.exp: Don't mix the timestamps
	for texts 5 and 6.

David Byers's avatar
Server    
David Byers committed
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
1999-05-31  David Byers  <davby@ida.liu.se>

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

	* src/server/manipulate.h (CHK_LOGIN): Check for NULL
	active_connection.
	(ENA): Survive a NULL active_connection.
	(HAVE_PRIV): Take a Person argument.

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

	* src/server/text-garb.c (garb_text): Reset deleted_texts after
	sending the debug message.

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

	* src/server/testsuite/lyskomd.0/09.exp (1015): Data sent to
	client 2 contained secret recipient. Fixed.

	* src/server/testsuite/lyskomd.0/05.exp: Fixed added_by field in
	Membership and Member

	* src/server/testsuite/lyskomd.0/03.exp: (1349,1350, 1351, 2001,
	2006): Fixed added_by field in Membership and Member
	

	* src/server/testsuite/lyskomd.0/01.exp: (1116): Fixed added_by
	field in Membership

	* src/server/regex-match.c (lookup_regexp): Copy the collate table 
	before putting it into the pattern buffer.

	* src/server/testsuite/lyskomd.0/00.exp (1038): Person 6 added
	himself to his letterbox.

	* src/server/membership.c (do_add_member): Take added_by as an
	argument.
	(add_member_common): Call do_add_member with explicit added_by.

	* src/server/person.c (create_person_generic): The person adding
	the mailbox membership is the same as the creator of the person.

	Fixed problems related to permission checking
	* src/server/membership.c (fast_access_perm): Take a connection
	argument instead of a person and pers_stat combo.
	(access_perm): Same here.
	(copy_public_confs): Same here.

	* src/server/text.c (ok_to_create_next_text): Same here.

	* src/server/regex-match.c (lookup_regexp): Test for
	param.regex_use_collate_table was inverted.
	(lookup_regexp): Added connection argument.

	* src/server/text.c (filter_secret_info): Take a connection
	argument instead of viewer and viewer_p
	(send_async_deleted_text): Call filter_secret_info with connection 
	argument.
	(get_text_stat_old): Same here.
	(get_text_stat): Same here.
	(send_async_new_text_old): Same here.
	(send_async_new_text): Same here.
	(person_text_read_access): Check that active_connection is set
	before attempting to use it.
	(text_read_access): Take a connection as an argument.

	* src/server/conference.c (get_conf_stat): Call
 	filter_aux_item_list with active_connection instead of ACTPERS and
 	ACT_P.

	* src/server/admin.c (get_info): Call filter_aux_item_list with
	active_connection instead of ACTPERS and ACT_P.

	* src/server/session.c (leave_conf): New parameter for connection
	to remove dependency on active_connection.

	* src/server/internal-connections.c (get_conn_by_number):
 	Defensive check on active_connection. Restart server if
 	active_connection is unset and no session number is specified
 	since callers of this function expect to get something sensible
 	out of it.

	* src/server/manipulate.h (CHK_CONNECTION): New macro. Call this
 	at the head of every RPC function.

	* src/server/admin.c (shutdown_kom): Signal internal error if we
	don't have an active connection.

Per Cederqvist's avatar
Per Cederqvist committed
958
959
960
961
962
963
964
1999-05-30  Per Cederqvist  <ceder@lysator.liu.se>

	Improve the test suite.
	* src/server/testsuite/lyskomd.0/09.exp: Added async messages sent
	by the garb when it deletes text 2, 4 and 6.  This is untested and
	may break.

965
966
1999-05-30  Per Cederqvist  <ceder@gratia>

967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
	Don't send async-sub-recipient messages when texts are deleted.
	* src/server/text.c (perform_subtraction): New static function,
	extracted from do_sub_recpt.  Only send async-sub-recipient if
	the new argument want_async is true.
	(do_sub_recpt): Code simplified by creation of
	perform_subtraction().  New argument: want_async (see above).
	(do_delete_text): Tell do_sub_recpt that we don't want any
	async-sub-recipient messages.
	(sub_recipient): Tell do_sub_recpt to send async-sub-recipient
	messages.
	* src/server/testsuite/lyskomd.0/09.exp: async-sub-recipient
 	messages are no longer erroneously sent.  Comment out the code
	that causes a core dump.
	* src/server/testsuite/lyskomd.0/send-async-cov.exp: Likewise.
	* src/server/testsuite/lyskomd.0/06.exp: async-sub-recipient
 	messages are no longer erroneously sent.

984
985
986
987
	Added a test case that corresponds to the bug found 1999-05-24.
	* src/server/testsuite/lyskomd.0/09.exp: This test now causes
	lyskomd to dump core while garbing texts.

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
	Async-sub-recipient was not always sent when it should be, and it
	contained bogus data.
	* src/server/testsuite/lyskomd.0/10.exp: Check async-sub-recipient.
	* src/server/text.c (do_sub_recpt): Send async-sub-recipient
	immediately before removing the recipient, so that we know where
	to send it.  As a side effect the type is now read from the proper
	misc-info group.
	(send_async_deleted_text): Use #if 0 instead of comments to
	comment out code.
	* src/server/testsuite/lyskomd.0/send-async-cov.exp: Handle
	async-sub-recipient messages that are (probably erroneously) sent.
	* src/server/testsuite/lyskomd.0/06.exp: Handle
	async-sub-recipient messages that are (probably erroneously) sent.

	New debug call: start-garb.  New debug async: garb-ended.
	* src/server/testsuite/lyskomd.0/09.exp: New tests.
	* src/server/text-garb.c (last_checked): Moved to file-level
	scope, so that start_garb can access it.
	(last_start): Likewise.
	(garb_text): Send async-garb-ended when the garb ends, but only if
	DEBUG_CALLS is defined.
	(start_garb): New function, only  present when DEBUG_CALLS is
	defined.
	* src/server/session.c (accept_async): Handle ay_garb_ended if
	DEBUG_CALLS is defined.
	* src/server/send-async.c (async_garb_ended): New
	function, only present when DEBUG_CALLS is defined.
	* src/server/send-async.h: Likewise.
	* src/server/prot-a-send-async.c (prot_a_async_garb_ended): New
	function, only present when DEBUG_CALLS is defined.
	* src/server/prot-a-send-async.h: Likewise.
	* src/server/fncdef.txt: New debug call: start_garb.
	* src/server/async.h (Async): New debug async: ay_garb_ended.
	* src/include/services.h (start_garb): New debug call.

	Cut-n-paste error in Protocol-A.texi fixed.
	* doc/Protocol-A.texi (async-sub-recipient): The explanation
	talked about "the new recipient".

1027
1028
1999-05-24  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
1029
1030
1031
1032
	Removed a newline in the log.
	* src/server/simple-cache.c (init_cache): Removed an extra newline
	in the log output.

1033
	Don't lose data when converting the database.
1034
1035
1036
1037
	* 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
1038
1039
	* src/server/ram-output.c (foutput_text_list): Don't get stuck in
	an eternal loop.
Per Cederqvist's avatar
Per Cederqvist committed
1040
1041
	* src/server/dbck-cache.c (cache_sync_all): Output format 2 is
	known.
1042
1043
1044
1045
1046
1047
1048
	* 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.

1049
1050
1051
1052
1053
1999-05-24  David Byers  <davby@ida.liu.se>

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

1054
	* src/server/memory.c (init_member): New function.
1055

1056
1057
1999-05-24  Per Cederqvist  <ceder@lysator.liu.se>

1058
1059
1060
	Update the distributed config file.
	* run-support/config: Removed the "Mux port" line.

1061
1062
1063
	Update the help message of dbck.
	* src/server/dbck.c (give_help): File format 2 is supported.

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
	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
1130
1131
1132
1133
1134
1135
	* 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.
1136
	* doc/prot-A-english.txt: File removed.
Per Cederqvist's avatar
Per Cederqvist committed
1137
1138
1139
	* src/server/To-do: File removed.
	* src/server/Makefile.am (EXTRA_DIST): Removed To-do.

Per Cederqvist's avatar
Per Cederqvist committed
1140
1141
1142
1143
1144
	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.

1145
	Documentation fixes.
Per Cederqvist's avatar
Per Cederqvist committed
1146
1147
	* doc/Protocol-A.texi (get-collate-table): Document what short
	collate tables means.
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
	* 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.

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
1185
1186
1187
1188
1189
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
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
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
1219
1220
1221
1222
1223
1224
1225
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.

1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
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.

1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
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.

1262
1263
1999-05-21  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
1264
1265
1266
1267
1268
1269
1270
1271
	"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.

1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
	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.

1287
1288
1289
1290
1291
1292
	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
1293
1294
1295
1296
1297
1298
1299
1300
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.
	
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
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
1316
1317
1999-05-21  David Byers  <davby@ida.liu.se>

1318
1319
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added null.exp 

David Byers's avatar
David Byers committed
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
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
	* 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.

1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
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:".

1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
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.

1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
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
1489
1490
1491
1492
1999-05-19  Per Cederqvist  <ceder@signum.se>

	* NEWS: We document in Texinfo, not info.

1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
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
1505
1506
1507
1508
1509
1510
1511
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
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
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.

1544
1545
1999-05-16  Per Cederqvist  <ceder@lysator.liu.se>

1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
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
1591
1592
1593
1594
1595
1596
1597
1598
	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.

1599
1600
1601
1602
1603
1604
1605
1606
1607
	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.
	
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
	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.

1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
	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
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
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
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
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
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
	* 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
1699

David Byers's avatar
David Byers committed
1700
1701
1702
1703
1704
1705
1706
1707
1708
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
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
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.

1762
	* src/include/kom-types.h (Misc_info_list): New type.
David Byers's avatar
David Byers committed
1763
1764
1765
1766
1767
1768

	* 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
1769
	hunts for the end of an array.
David Byers's avatar
David Byers committed
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781

	* 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):
1782
	Expect long-array and not protocol-error.
David Byers's avatar
David Byers committed
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

	* 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.

1810
1811
1812
1813
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
1814
	of lyskomd.0/leaks*.exp -> leaks.0/leaks*.exp.
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
	(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
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
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, 
1852
	Max client data length, Nologin file. Updated some other parameter
David Byers's avatar
David Byers committed
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
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
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
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
	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.

2066
2067
2068
2069
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
2070
	descriptors 3-9 to avoid interference between file descriptors
2071
2072
	inherithed from make, sshd et c with lyskomd.0/07.exp.

Per Cederqvist's avatar
Per Cederqvist committed
2073
2074
2075
2076
2077
2078
2079
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.

2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
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
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
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.

2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
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
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
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.

2244
2245
2246
2247
2248
2249
2250
2251
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
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
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.

2263
2264
2265
2266
2267
2268
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
2269
2270
2271
2272
2273
2274
2275
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
2276
	102=set-membership-type was omitted, and later calls were
Per Cederqvist's avatar
Per Cederqvist committed
2277
2278
2279
	misnumbered.
	(map-created-texts): Documented.

2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
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.

2291
2292
1999-04-17  Per Cederqvist  <ceder@lysator.liu.se>

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
	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.

2322
2323
2324
2325
2326
2327
2328
2329
2330
	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.

2331
2332
2333
2334
2335
2336
2337
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.

2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
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
2368
2369
1999-04-15  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
2370
2371
2372
2373
2374
2375
2376
	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
2377
2378
2379
	Test suite improvement.
	* src/server/testsuite/lyskomd.0/03.exp: Test calls 103 and 104.

2380
2381
2382
2383
2384
1999-04-06  Per Cederqvist  <ceder@gratia>

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

2385
2386
2387
2388
2389
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.

2390
2391
1999-04-05  Per Cederqvist  <ceder@gratia>

2392
2393
2394
2395
2396
2397
2398
2399
	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
2400
2401
	* src/server/testsuite/l2g.0/11.exp: Added lots of test cases for
	l2g_write.
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471

	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.

2472
2473
2474
2475
2476
2477
2478
	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
2479
	further.  Test l2g_clear.
2480
2481
2482
	* src/server/local-to-global.h: Comments improved.
	* src/server/local-to-global.c: Comments improved.

2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
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
2497
2498
1999-04-04  Per Cederqvist  <ceder@panic.signum.se>

2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
	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
2523
2524
2525
	Distribute sigflags.h.
	* src/server/Makefile.am (lyskomd_SOURCES): Added sigflags.h.

2526
2527
1999-04-03  Per Cederqvist  <ceder@lysator.liu.se>

2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
	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.
2582
2583
2584
2585
	* mkmi: Remove scripts/mdate-sh, which should be generated by
	automake.
	* doc/man/dbck.8: All documentation removed.  Refer to
	dbck.info.
2586
2587
2588
	* doc/man/lyskom.5: Documentation removed.  Refer to lyskomdb.info.
	* doc/man/updateLysKOM.8: All documentation removed.  Refer to
	lyskomd.info.
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
	* 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.

2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
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.

2629
2630
1999-04-02  Per Cederqvist  <ceder@panic.signum.se>

Per Cederqvist's avatar
Per Cederqvist committed
2631
2632
2633
2634
	Fix "make clean".
	* src/server/testsuite/Makefile.am (mostlyclean-local): Remove db
	and etc.

2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
	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.

2657
2658
2659
2660
2661
2662
2663
2664
2665
	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.

2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
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.