ChangeLog 175 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
1999-06-05  Per Cederqvist  <ceder@lysator.liu.se>

	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
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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.

70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
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
116
117
118
119
120
121
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
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
211
212
213
214
215
216
217
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.

218
219
1999-05-30  Per Cederqvist  <ceder@gratia>

220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
	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.

237
238
239
240
	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.

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

280
281
1999-05-24  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
282
283
284
285
	Removed a newline in the log.
	* src/server/simple-cache.c (init_cache): Removed an extra newline
	in the log output.

286
	Don't lose data when converting the database.
287
288
289
290
	* 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
291
292
	* src/server/ram-output.c (foutput_text_list): Don't get stuck in
	an eternal loop.
Per Cederqvist's avatar
Per Cederqvist committed
293
294
	* src/server/dbck-cache.c (cache_sync_all): Output format 2 is
	known.
295
296
297
298
299
300
301
	* 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.

302
303
304
305
306
1999-05-24  David Byers  <davby@ida.liu.se>

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

307
	* src/server/memory.c (init_member): New function.
308

309
310
1999-05-24  Per Cederqvist  <ceder@lysator.liu.se>

311
312
313
	Update the distributed config file.
	* run-support/config: Removed the "Mux port" line.

314
315
316
	Update the help message of dbck.
	* src/server/dbck.c (give_help): File format 2 is supported.

317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
	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
383
384
385
386
387
388
	* 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.
389
	* doc/prot-A-english.txt: File removed.
Per Cederqvist's avatar
Per Cederqvist committed
390
391
392
	* src/server/To-do: File removed.
	* src/server/Makefile.am (EXTRA_DIST): Removed To-do.

Per Cederqvist's avatar
Per Cederqvist committed
393
394
395
396
397
	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.

398
	Documentation fixes.
Per Cederqvist's avatar
Per Cederqvist committed
399
400
	* doc/Protocol-A.texi (get-collate-table): Document what short
	collate tables means.
401
402
403
404
405
406
407
408
409
410
411
412
	* 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.

413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
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
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
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
472
473
474
475
476
477
478
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.

479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
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.

505
506
507
508
509
510
511
512
513
514
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.

515
516
1999-05-21  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
517
518
519
520
521
522
523
524
	"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.

525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
	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.

540
541
542
543
544
545
	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
546
547
548
549
550
551
552
553
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.
	
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
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
569
570
1999-05-21  David Byers  <davby@ida.liu.se>

571
572
	* src/server/testsuite/Makefile.am (EXTRA_DIST): Added null.exp 

David Byers's avatar
David Byers committed
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
	* 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.

677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
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:".

696
697
698
699
700
701
702
703
704
705
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.

706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
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
742
743
744
745
1999-05-19  Per Cederqvist  <ceder@signum.se>

	* NEWS: We document in Texinfo, not info.

746
747
748
749
750
751
752
753
754
755
756
757
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
758
759
760
761
762
763
764
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
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
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.

797
798
1999-05-16  Per Cederqvist  <ceder@lysator.liu.se>

799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
	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.

852
853
854
855
856
857
858
859
860
	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.
	
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
	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.

885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
	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
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
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
921
922
923
924
925
926
927
928
929
930
931
932
933
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
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
	* 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
952

David Byers's avatar
David Byers committed
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
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.
For faster browsing, not all history is shown. View entire blame