ChangeLog 48.3 KB
Newer Older
1
2
3
4
5
6
2003-08-22  Per Cederqvist  <ceder@ceder.dyndns.org>

	Don't crash if failing to bind a port.
	* src/isc_session.c (isc_destroy): Don't chanse a NULL pointer.
	This could be triggered if the port was already bound.

7
8
9
10
11
12
2003-08-15  Per Cederqvist  <ceder@ceder.dyndns.org>

	Get a fresh version of depcomp.
	* depcomp: Removed.  Regenerate this using automake to get a fresh
	version.

13
14
15
16
17
18
19
20
21
22
2003-08-11  Per Cederqvist  <ceder@ceder.dyndns.org>

	Code cleanup.
	* src/isc_stdout.c: Fixed a typo in a comment.

	Don't move memcpy to move overlapping blocks.  This could
	potentially result in the server sending garbage to clients.
	* src/isc_output.c (isc_oflush): Use memmove, not memcpy, to move
	memory areas that may overlap.

23
24
25
26
27
28
29
30
31
32
33
2003-08-07  Per Cederqvist  <ceder@ceder.dyndns.org>

	Removed the useless nlinks field.  (Bug 1071).
	* src/intern.h (struct isc_scb_internal): Removed the nlinks field.
	(isc_insert): Changed return type to void.
	* src/isc_session.c (isc_insert): Changed return type to void.
	Don't manipulate the useless nlinks field.
	(isc_remove): Don't manipulate the useless nlinks field.
	(isc_create): Ditto.
	(isc_destroy): Ditto.

34
35
36
2003-08-06  Per Cederqvist  <ceder@ceder.dyndns.org>

	Use ADNS to look up IPv4 addresses.  (Bug 627).
37
	* src/Makefile.am (AM_CPPFLAGS): Added -I flag for adns.
38
39
40
41
42
	* src/isc.h (enum isc_resolve_status): Added
	isc_resolve_adns_error.
	(isc_resolve_remote): Return 0 on success.
	* src/intern.h (struct isc_mcb): Added adns.
	(struct isc_scb_internal): Added adns_query.
43
44
	* src/isc_socket.c: Include <stdlib.h>.
	(isc_dns_resolve_adns_cb): New function.
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
	(isc_resolve_remote): Try to use adns to look up the address.
	Fall back to the old method if adns returns ENOSYS, which
	indicates that it doesn't support the addess family.
	* src/isc_session.c (isc_create): Initialize adns_query.
	(isc_destroy): Cancel any pending adns query.
	* src/isc_master.c (isc_initialize): Initialize an oop adns
	adapter.
	(isc_shutdown): Delete the oop adns adapter.
	* src/isc_abort.c: Include "adns.h" and "oop-adns.h".
	* src/isc_alloc.c: 
	* src/isc_compat.c: 
	* src/isc_event.c: 
	* src/isc_message.c: 
	* src/isc_output.c: 
	* src/isc_queue.c: 
	* src/isc_relocate.c: 
	* src/isc_stdout.c: 
	* src/isc_tcp.c: 

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
2003-08-05  Per Cederqvist  <ceder@ceder.dyndns.org>

	Restructure the DNS lookup API in preparation of ADNS
	integration.  The API is now callback-based.  The current
	implementation still uses gethostbyname, though.
	* src/isc.h (enum isc_resolve_status): New enum.
	(isc_resolve_done_cb): New callback.
	(struct isc_scb): Added the field "remote".
	(isc_gethostname): Removed.
	(isc_resolve_remotem): New function.
	* src/intern.h (struct isc_scb_internal): Added resolve_callback.
	(isc_dns_resolve_cb): New function.
	* src/isc_socket.c (isc_dns_resolve_cb): New function.
	(isc_resolve_remote): New function.
	(isc_gethostname): Removed.
	* src/isc_session.c (isc_create): Initialize resolve_callback and
	remote.
	(isc_destroy): Cancel any pending dns query, and clear remote.

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
2003-08-04  Per Cederqvist  <ceder@ceder.dyndns.org>

	Simplified the API of the callback functions.  Pass a pointer to
	the isc_scb instead of a user-supplied pointer to the callback.
	* src/isc.h (isc_accept_callback): Removed the cb_mcb argument.
	(isc_write_error_cb): Removed the cb_mcb and user arguments.
	(isc_stale_output_cb): Ditto.
	(isc_set_read_callback): Removed the user argument.  Use the udg
	field of the isc_scb instead.
	* src/intern.h (struct isc_scb_internal): Removed
	data_available_user.
	* src/isc_tcp.c (isc_accept_cb): Adjusted to the new API of the
	callback functions.
	* src/isc_session.c (isc_create): Don't set data_available_user,
	which has been removed.
	(stale_cb): Adjusted to the new API of the callback functions.
	(idle_cb): Ditto.
	(isc_set_read_callback): Removed the user argument.
	(isc_check_read_callback): Pass the isc_scb object instead of the
	user-supplied pointer to the on_fd.
	* src/isc_output.c (isc_oflush): Adjusted to the new API of the
	callback functions.

106
107
2003-08-03  Per Cederqvist  <ceder@ceder.dyndns.org>

108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
	Code cleanup.  At the same time a micro-optimization was done: get
	rid of a call to getpeername() and getsockname() per accepted
	connection.  (Bug 916).
	* src/isc_tcp.c (isc_tcp_accept): Use the address that the
	accept() call supplies, so that we don't have to do an extra call
	to getpeername().  Copy the local address from the socket we
	listen to, so that we don't have to do an extra call to
	getsockname().
	* src/isc_socket.c (isc_getladdress): Function removed.
	(isc_getraddress): Function removed.
	(isc_copyaddress): Resurrected the function that was removed
	2003-07-12, and changed the type names to the current ones.
	* src/isc.h (isc_getladdress): Removed.
	(isc_getraddress): Removed.
	* src/intern.h (isc_copyaddress): Resurrected the function that
	was removed 2003-07-12.

	Removed documentation that was misleading.
	* man/Makefile.am (EXTRA_DIST): Removed FUNCTIONS.
	* man/FUNCTIONS: Removed.  Almost nothing was true any more.
	* doc/Makefile.am (EXTRA_DIST): Removed MANUAL.sv.
	* doc/MANUAL.sv: Removed.  Almost nothing was true any more.

131
132
133
	Fixed an uninitialized variable.
	* src/isc_session.c (isc_create): Initialize idle_cb_registered.

134
135
136
137
138
139
140
141
142
143
144
145
146
147
	The idle and stalled timeout are now fully orthogonal.  Fixes
	to the idle timeout implementation.
	* src/isc.h (isc_set_acceptable_idle): It is now acceptable to
	have a idle timeout that is shorter than the stale timeout.
	* src/isc_session.c (stale_cb): Return OOP_HALT instead of
	following a NULL pointer if the user hasn't registered a
	callback.
	(idle_cb): Ditto.
	(isc_set_acceptable_idle): Store the new value inte the proper
	field.
	(isc_check_read_callback): Simplified the logic.  It is now
	acceptable to have a idle timeout that is shorter than the stale
	timeout.

148
149
2003-08-02  Per Cederqvist  <ceder@ceder.dyndns.org>

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
	Added the ability to disconnect idle clients.  (Bug 11).
	* src/isc.h (isc_cfg_stale_timeout): New argument: default_idle.
	(isc_set_read_callback): New argument: idle_cb.
	(isc_set_acceptable_idle): New function.
	* src/intern.h (struct isc_scb_internal): Added fields idle_cb,
	idle_cb_registered, idle_tv and acceptable_idle_time.
	(struct isc_session_cfg): Added idle_timeout.
	* src/isc_tcp.c (isc_accept_cb): Forward declaration using the
	typedef oop_call_fd added.
	* src/isc_session.c (isc_create): Set acceptable_idle_time to the
	default idle timeout.
	(idle_cb): New static function.
	(isc_cancel_idle_callback): New static function.
	(isc_set_read_callback): New argument: idle_cb.
	(isc_check_read_callback): Handle the idle timeout.
	(isc_destroy): Cancel the idle timeout.
	* src/isc_master.c (isc_cfg_stale_timeout): New argument:
	default_idle.

169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
	Make the message size and output queue configurable again.
	* src/isc.h (isc_cfg_queue_size): New function.
	* src/isc_stdout.c (isc_putc): Handle the case when max.msgsize is
	set to less than ISC_DEFAULT_MAX_MSG_SIZE.
	(isc_write): Ditto.
	* src/isc_session.c (isc_check_read_callback): Check the size of
	the output queue in bytes as well as number of messages.
	* src/isc_queue.c (isc_newqueue): Initialize bytes.
	(isc_killqueue): Check bytes.
	(isc_pushqueue): Update bytes.
	* src/isc_output.c (isc_oflush): Update the output queue size.
	* src/isc_master.c (isc_initialize): Initialize queuedsize_bytes.
	(isc_cfg_queue_size): New function.
	* src/isc_event.c (isc_read_data): Check for too many bytes in
	output queue.
	* src/intern.h (struct isc_scb_internal): Make the sendbuf be
	ISC_DEFAULT_MAX_MSG_SIZE bytes large, not 2048.
	(struct isc_msgqueue): New field: bytes.
	(struct isc_session_cfg): Added queuedsize_bytes.

189
190
2003-08-01  Per Cederqvist  <ceder@ceder.dyndns.org>

191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
	Added a callback function that reports changes to the size of the
	output queue.
	* src/isc.h (isc_write_queue_change_cb): New typedef.
	(isc_initialize): New argument: the write_change_cb.
	* src/intern.h (struct isc_mcb): Added write_change_cb.
	(isc_killqueue): Now returns an int: the number of payload bytes
	in the killed queue.
	* src/isc_session.c (isc_destroy): Inform the write change
	callback function of changes in the pending output queue size.
	* src/isc_queue.c (isc_killqueue): Now returns an int: the number
	of payload bytes in the killed queue.
	* src/isc_output.c (isc_flush): Inform the write change callback
	function of changes in the pending output queue size.
	(isc_oflush): Ditto.
	* src/isc_master.c (isc_initialize): New argument:
	write_change_cb.

208
209
210
211
212
	Don't fail to unregister the stale timeout during shutdown.
	* src/isc_session.c (isc_set_read_callback): Call
	isc_cancel_stale_output_callback().  Removed redundant checks.
	(isc_destroy): Call isc_cancel_stale_output_callback().

213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
	Call a callback function if a client becomes stale.
	* src/isc.h (isc_stale_output_cb): New typedef.
	(isc_cfg_stale_timeout): New function.
	(isc_set_read_callback): New argument: stale_output_cb.
	* src/isc_session.c (isc_create): Initialize
	stale_output_cb_registered and stale_output_cb.
	(stale_cb): New static function.
	(isc_set_read_callback): New argument: stale_output_cb.
	(isc_cancel_stale_output_callback): New static function.
	(isc_check_read_callback): New argument: any_written.  All callers
	updated.  Handle a timer callback used to detect if a client has
	stalled.
	* src/isc_output.c (isc_oflush): Inform isc_check_read_callback()
	if anything was written.
	* src/isc_master.c (isc_initialize): Initialize stale_timeout.
	(isc_cfg_stale_timeout): New function.
	* src/intern.h (struct isc_scb_internal): Added stale_output_cb,
	stale_output_cb_registered and stale_output_tv.
	(struct isc_session_cfg): Added stale_timeout.
	(isc_check_read_callback): New argument: any_written.  All callers
	updated.
	* configure.in: Removed -Waggregate-return, since we use
	timeval_ctor() from libmisc.

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
2003-07-31  Per Cederqvist  <ceder@ceder.dyndns.org>

	Move struct isc_mcb and large parts of struct isc_scb from isc.h
	to intern.h.
	* src/isc.h (isc_msgqueue): Forward declaration removed.
	(isc_session_cfg): Ditto.
	(isc_scb_entry): Ditto.
	(struct isc_scb): Moved a lot of fields to struct isc_scb_internal
	in intern.h.
	(struct isc_mcb): Moved to intern.h.
	(isc_getoopsource): New function.
	* src/intern.h (struct isc_mcb): Moved here from isc.h.
	(struct isc_scb_internal): New struct, that contains all the parts
	of struct isc_scb that the user need not know about.
	(struct isc_scb_entry): Refer to the internal structure.
	(isc_oflush): Use the internal structure.
	(isc_create): Ditto.
	(isc_insert): Ditto.
	(isc_remove): Ditto.
	(isc_createtcp): Ditto.
	(isc_bindtcp): Ditto.
	(isc_check_read_callback): Ditto.
	(isc_cancel_read_callback): Ditto.
	(isc_cancel_write_callback): Ditto.
	* src/isc_tcp.c (isc_tcp_accept): Handle struct isc_scb_internal.
	(isc_createtcp): Handle struct isc_scb_internal.
	(isc_bindtcp): Handle struct isc_scb_internal.
	(isc_accept_cb): Handle struct isc_scb_internal.
	(isc_listentcp): Handle struct isc_scb_internal.
	* src/isc_stdout.c (isc_putc): Handle struct isc_scb_internal.
	(isc_write): Handle struct isc_scb_internal.
	* src/isc_session.c (isc_insert): Handle struct isc_scb_internal.
	(isc_findsession): Handle struct isc_scb_internal.
	(isc_remove): Handle struct isc_scb_internal.
	* src/isc_output.c (isc_flush): Handle struct isc_scb_internal.
	(write_cb): Handle struct isc_scb_internal.
	(isc_oflush): Handle struct isc_scb_internal.
	* src/isc_master.c (isc_shutdown): Handle struct isc_scb_internal.
	* src/isc_event.c (isc_read_data): Handle struct isc_scb_internal.

277
278
2003-07-28  Per Cederqvist  <ceder@ceder.dyndns.org>

Per Cederqvist's avatar
Per Cederqvist committed
279
280
281
282
	Code cleanup.
	* src/isc_tcp.c (isc_mktcpaddress): Rewrite the code to get rid of
	a compiler warning and make the code easier to read.

283
284
285
286
287
288
	Don't use socklen_t in the exported API, since that leads to
	portability problems.
	* src/isc_tcp.c, src/isc.h (isc_addressfamily): Changed return
	type to int.
	(isc_addresssize): Ditto.

289
290
291
	Distribute isc_addr.h, which was added yesterday.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_addr.h.

292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
	Host name lookup always failed if gethostbyname2() was used.
	* src/isc_tcp.c (isc_mktcpaddress_internal): The logic for checking
	the return value from gethostbyname2() was inverted.

	Export functions for creating and using an isc_address from a host
	name and port name.
	* src/isc.h (isc_mktcpaddress): New function.
	(isc_addressfamily): New function.
	(isc_addresssize): New function.
	(isc_addresspointer): New function.
	* src/isc_tcp.c (isc_mktcpaddress_internal): New name for former
	isc_mktcpaddress.  All callers updated.
	(isc_mktcpaddress): New function.
	(isc_addresssize): New function.
	(isc_addressfamily): New function.
	(isc_addresspointer): New function.
	(isc_bindtcp): Use isc_addresspointer() and isc_addresssize() to
	simplify the code.
	* src/isc_addr.h (UNUSED_UNLESS_INET6): New macro.
	(USE_GETIPNODEBYNAME): Moved from intern.h.
	* src/intern.h: Fixed documentation of FOR_EACH_AF.
	(USE_GETIPNODEBYNAME): Moved to isc_addr.h.

315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
2003-07-27  Per Cederqvist  <ceder@ceder.dyndns.org>

	Clean up some problems in ISC that the IPv6 support added.
	(Bug 563).
	* src/isc_addr.h: New file, that contains private structures
	extracted from isc.h.  This file should only be included by files
	in the isc library.
	* src/isc_tcp.c: Include isc_addr.h.
	* src/isc_socket.c: Include isc_addr.h.
	* src/isc.h: Don't include <sys/socket.h> and <netinet/in.h> from
	here.  The coding standard of lyskomd is to never include files
	from included files.
	(SOCKADDR_STORAGE): Moved to isc_addr.h.
	(union sockaddrs): Ditto.
	(union isc_address): Ditto, but keep a forward declaration.
	* src/intern.h (isc_mkipaddress): Moved to isc_addr.h.

332
333
334
335
336
337
2003-07-14  Per Cederqvist  <ceder@ceder.dyndns.org>

	Don't read when the output queue is full.
	* src/isc_event.c (isc_read_data): Return ISC_READ_WOULDBLOCK if
	the output queue is full.

338
339
340
341
342
343
344
2003-07-13  Per Cederqvist  <ceder@ceder.dyndns.org>

	Ensure that unused parameters are unused.
	* src/unused.h (UNUSED_H_CONCAT): New macro.
	(UNUSED): Mangle the name of the supposedly unused argument, so
	that the compiler will report errors if it actually is used.

345
346
2003-07-12  Per Cederqvist  <ceder@ceder.dyndns.org>

Per Cederqvist's avatar
Per Cederqvist committed
347
348
349
350
351
352
	Fix new compilation errors.
	* src/isc_socket.c (isc_getipnum): Fixed compilation errors for
	IPv6 configurations, which were introduced in the previous commit.
	(isc_gethostname): Ditto.
	(isc_getportnum): Ditto.

353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
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
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
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
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
	Use liboop as a backend.  Only support TCP streams.  Removed a lot
	of stuff that isn't used by lyskom-server.  Move much internal
	stuff from isc.h to intern.h.
	* src/isc_wait.c: File removed.
	* src/isc_udp.c: File removed.
	* src/isc_tcp.c (isc_tcp_accept_fn): Renamed to isc_tcp_accept.
	Removed the unused hl and msg arguments.
	(isc_tcp_destroy_fn): Function removed.
	(isc_connecttcp): Ditto.
	(isc_opentcp): Ditto.
	(isc_tcp_funs): Function table removed.
	(isc_createtcp): Added mcb and initial_state arguments.  Removed
	obsolete bogus setsockopt() calls.
	(isc_bindtcp): Don't check the type of the session.
	(isc_accept_cb): New function.
	(isc_listentcp): Added the cb argument.  Don't set the state here;
	that is now done by isc_create().  Add isc_accept_cb() as a read
	callback.
	* src/isc_stdout.c (isc_putc): The ISC_STATE_CONNECTING state no
	longer exists.
	(isc_write): Ditto.
	* src/isc_socket.c (isc_getladdress): Don't check the type of the
	session.
	(isc_getraddress): Ditto.
	(isc_copyaddress): Function removed.
	(isc_getservice): Ditto.
	* src/isc_session.c (isc_default_read_fn): Function removed.
	(isc_default_write_fn): Ditto.
	(isc_default_close_fn): Ditto.
	(isc_close): Ditto.
	(isc_sessions): Ditto.
	(isc_openfd): Ditto.
	(isc_file_destroy_fn): Ditto.
	(isc_openfile): Ditto.
	(isc_default_fun): Function table removed.
	(isc_create): Removed the "IscHandler *fun" argument, and added
	mcb and initial_state arguments.  Initialize the currently
	existing fields.
	(isc_set_read_callback): New function.
	(isc_check_read_callback): Ditto.
	(isc_cancel_read_callback): Ditto.
	(isc_cancel_write_callback): Ditto.
	(isc_destroy): Cancel read, write and accept callbacks.  Free
	raddr and laddr instead of calling a destroy handler.
	(isc_disable): Remove the read callback.
	(isc_enable): Maybe add the read callback.
	* src/isc_relocate.c: Include "oop.h" and "s-string.h".
	* src/isc_queue.c (isc_pollqueue): Removed the external function.
	The macro is good enough.
	* src/isc_output.c (isc_flush): There is no longer any read queue.
	(write_cb): New function.
	(isc_oflush): Don't close the socket if the output queue is too
	big.  Instead, isc_check_read_callback() refuses to read input
	from the client until it reads enough of the output queue.  Assert
	that this isn't a listening session, but don't otherwise check the
	state.  Call write instead of using the handler mechanism.  Call
	the write_err_cb callback function if an error occurs.  Don't
	update statistics that nobody uses.  Set up a liboop write
	callback if we cannot send all output at once.  Call
	isc_check_read_callback().
	(isc_send): Function removed.
	(isc_sendto): Ditto.
	* src/isc_message.c (isc_allocmsg): Don't set the address field,
	which has been removed.
	(isc_reallocmsg): Function removed.
	(isc_copymsg): Ditto.
	(isc_mkstrmsg): Ditto.
	* src/isc_master.c (isc_initialize): Removed the cfg argument, and
	added the oop_source argument.  Allocate a cfg struct.
	(isc_cfg_fd_relocate): New function.
	(isc_shutdown): Free the cfg struct.
	* src/isc_handler.c: File removed.
	* src/isc_event.c (isc_read_data): New function.
	(isc_getnextevent): Function removed.
	(isc_dispose): Ditto.
	* src/isc_compat.c: Include "oop.h" and "s-string.h".
	* src/isc_alloc.c (isc_strdup): Function removed.
	* src/isc_abort.c (isc_setabortfn): Place inside #if 0, since it
	is currently unused.
	* src/isc.h: Removed several defines for structs and unions.  All
	users updated to use the real names instead:
	    IscSessionConfig  => struct isc_session_cfg
	    IscAddress        => union  isc_address
	    IscMessage        => struct isc_msg
	    IscMsgQE          => struct isc_msg_q_entry
	    IscMsgQueue       => struct isc_msgqueue
	    IscSession        => struct isc_scb
	    IscSessionList    => struct isc_scb_entry
	    IscMaster         => struct isc_mcb
	(IscMasterConfig): Define and struct removed.
	(IscConfig): Ditto.
	(IscHandlerCache): Ditto
	(IscHandler): Ditto.
	(IscHandlerList): Ditto.
	(IscEvent): Ditto.
	(IscEventType): Define and enum removed.
	(IscSessionType): Ditto.
	(IscSessionInfo): Define and union removed.
	(IscSessionStats): Ditto.
	(enum isc_session_state): Removed the states ISC_STATE_UNKNOWN,
	ISC_STATE_CONNECTING and ISC_STATE_CLOSING2.
	(union isc_address): Don't wrap the saddr field inside a
	meaningless struct named ip.
	(isc_initialize): Removed the cfg argument, and added the
	oop_source argument.
	(struct isc_scb): Removed the following fields: type, isc_errno,
	rd_msg_q, info, logintime, idlesince, stats and handlers.
	Added the following fields: raddr, laddr, master, accept_cb,
	write_err_cb, data_available_callback, data_available_user,
	data_available_registered and write_cb_registered.
	(struct isc_mcb): The scfg field is now a pointer, so that we
	don't have to expose the struct isc_session_cfg struct in isc.h.
	Added the event_source field.
	(isc_listentcp): Added the cb argument.
	(isc_openfd): Function removed.
	(isc_openfile): Ditto.
	(isc_openudp): Ditto.
	(isc_close): Ditto.
	(isc_sessions): Ditto.
	(isc_getnextevent): Ditto.
	(isc_wait): Ditto.
	(isc_dispose): Ditto.
	(isc_send): Ditto.
	(isc_sendto): Ditto.
	(isc_reallocmsg): Ditto.
	(isc_copymsg): Ditto.
	(isc_mkstrmsg): Ditto.
	(isc_createudp): Ditto.
	(isc_bindudp): Ditto.
	(isc_connecttcp): Ditto.
	(isc_connectudp): Ditto.
	(isc_listenudp): Ditto.
	(isc_copyaddress): Ditto.
	(isc_getservice): Ditto.
	(isc_newhandler): Ditto.
	(isc_freehandler): Ditto.
	(isc_copyhandler): Ditto.
	(isc_pushhandler): Ditto.
	(isc_pophandler): Ditto.
	(ISC_HCALLFUN1): Macro removed.
	(ISC_HCALLFUN2): Ditto.
	(ISC_HCALLFUN3): Ditto.
	(enum isc_read_result): New enum.
	(isc_read_data): New function.
	(isc_cfg_fd_relocate): Ditto.
	(isc_set_read_callback): Ditto.
	(isc_accept_callback): New callback function.
	(isc_write_error_cb): Ditto
	Moved some constants to intern.h:
	(ISC_DEFAULT_MAX_MSG_SIZE): Moved.
	(ISC_DEFAULT_MAX_QUEUED_SIZE): Moved.
	(ISC_DEFAULT_MAX_DEQUEUE_LEN): Moved.
	(ISC_DEFAULT_MAX_OPEN_RETRIES): Moved.
	(ISC_DEFAULT_MAX_BACKLOG): Moved.
	Moved some structs to intern.h:
	(struct isc_msg): Was: IscMessage.
	(struct isc_msg_q_entry): Was: IscMsgQE.
	(struct isc_msgqueue): Was: IscMsgQueue.
	(struct isc_session_cfg): Was: IscSessionConfig.
	(struct isc_scb_entry): Was: IscSessionList.
	Moved some functions to intern.h:
	(isc_freemsg): Moved.
	(isc_create): Moved.
	(isc_insert): Moved.
	(isc_remove): Moved.
	(isc_createtcp): Moved.
	(isc_bindtcp): Moved.
	(isc_allocmsg): Moved.
	Moved some functions from intern.h:
	(isc_setallocfn): Moved.
	* src/intern.h: Moved some constants from isc.h and changed their
	values:
	    ISC_DEFAULT_MAX_MSG_SIZE:   2048 => 8176
	    ISC_DEFAULT_MAX_QUEUED_SIZE: 600 => 50
	    ISC_DEFAULT_MAX_DEQUEUE_LEN:  10 => 30
	    ISC_DEFAULT_MAX_OPEN_RETRIES: 10 => 10
	    ISC_DEFAULT_MAX_BACKLOG:       5 => 50
	Moved some structs from isc.h and stopped using a defined name:
	(struct isc_msg): Was: IscMessage.
	(struct isc_msg_q_entry): Was: IscMsgQE.
	(struct isc_msgqueue): Was: IscMsgQueue.
	(struct isc_session_cfg): Was: IscSessionConfig.
	(struct isc_scb_entry): Was: IscSessionList.
	Moved some functions from isc.h:
	(isc_freemsg): Moved.
	(isc_create): Moved.
	(isc_insert): Moved.
	(isc_remove): Moved.
	(isc_createtcp): Moved.
	(isc_bindtcp): Moved.
	(isc_allocmsg): Moved.
	Moved some functions to isc.h:
	(isc_setallocfn): Moved.
	Other changes:
	(struct isc_msg): Removed the address field.
	(struct isc_session_cfg): Removed the version field.
	(isc_log): Function removed.
	(isc_create): Removed the "IscHandler *fun" argument, and added
	mcb and initial_state arguments.
	(isc_createtcp): Added mcb and initial_state arguments.
	(isc_strdup): Function removed.
	(isc_default_read_fn): Function removed.
	(isc_default_write_fn): Function removed.
	(isc_default_close_fn): Function removed.
	(isc_pollqueue): Removed the external function.  Retain the
	macro.
	(isc_setabortfn): Place inside #if 0, since it is currently
	unused.
	(isc_check_read_callback): New function.
	(isc_cancel_read_callback): New function.
	(isc_cancel_write_callback): New function.
	(ISC_SCALLFUN1): Macro removed.
	(ISC_SCALLFUN2): Macro removed.
	(ISC_SCALLFUN3): Macro removed.
	* src/Makefile.am (libisc_a_SOURCES): Removed isc_handler.c,
	isc_udp.c and isc_wait.c.
	(AM_CPPFLAGS): Added -I flags for libmisc (to get the string
	class), liboop, and the main include library (needed by
	s-string.h).

573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
2003-01-07  Per Cederqvist  <ceder@lysator.liu.se>

	Port to IRIX64, where "unsigned long" isn't large enough to avoid
	alignment problems.
	* configure.in: Handle --disable-malloc-guards.  Check for
	intptr_t, intmax_t and size_t.
	* src/isc_alloc.c: Include inttypes.h and stdint.h.  Check
	USE_MALLOC_GUARDS.
	(union overhead): New union, to fix alignmentproblems.
	(OVERHEAD): New macro.
	(isc_malloc): Use union overhead instead of unsigned long.
	Removed unneeded casts.  Handle USE_MALLOC_GUARDS.
	(isc_realloc): Ditto.
	(isc_free): Ditto.

Per Cederqvist's avatar
Per Cederqvist committed
588
589
2003-01-06  Per Cederqvist  <ceder@ceder.dyndns.org>

590
	Fix IPv4 under Solaris 2.8.  (Patch by Thorild Seln.)
Per Cederqvist's avatar
Per Cederqvist committed
591
592
593
594
595
	* src/isc_tcp.c (isc_bindtcp): Pass the proper size to bind() for
	IPv4 and IPv6.
	* src/isc_udp.c (isc_bindudp): Pass the proper size to bind() for
	IPv4 and IPv6.

596
597
598
599
600
601
602
603
2002-12-30  Per Cederqvist  <ceder@ceder.dyndns.org>

	Autoconf: better check for "attribute unused" support.
	* configure.in: Use CMOD_C_WORKING_ATTRIBUTE_UNUSED instead of
	CMOD_C_ATTRIBUTE_UNUSED.
	* acinclude.m4 (CMOD_C_ATTRIBUTE_UNUSED): Removed.
	(CMOD_C_WORKING_ATTRIBUTE_UNUSED): New defun.

604
605
606
607
608
609
610
611
612
613
614
615
616
2002-11-29  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fixed more IPv6 portability problems.
	* configure.in: Check for freehostent.
	* src/intern.h: Require HAVE_FREEHOSTENT to be defined if we are
	to use getipnodebyname.
	* src/isc_udp.c (isc_mkudpaddress): Don't call freehostent()
	unless hp has been allocated by getipnodebyname().
	* src/isc_tcp.c (isc_mktcpaddress): Don't call freehostent()
	unless hp has been allocated by getipnodebyname().
	* src/isc_socket.c (isc_getipnum): Fixed typo: strncpy was spelled
	"strncopy".

617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
2002-11-28  Per Cederqvist  <ceder@ceder.dyndns.org>

	Give credits to Thorild for the IPv6 porting.
	* AUTHORS: Added Thorild Seln.
	
	Fix IPv6 portability problems to various versions of AIX, HP-UX
	and Solaris.
	* src/intern.h: Define USE_GETIPNODEBYNAME if both
	HAVE_GETIPNODEBYNAME and AI_ADDRCONFIG are defined.  AIX 4.2 lacks
	AI_ADDRCONFIG.
	* src/isc_udp.c (isc_mkudpaddress): Declare error_num if
	USE_GETIPNODEBYNAME is defined.  Test USE_GETIPNODEBYNAME instead
	of HAVE_GETIPNODEBYNAME to determine if it should be used.  Don't
	access AF_INET6 unless USE_INET6 is true.
	* src/isc_tcp.c (isc_mktcpaddress): Declare error_num if
	USE_GETIPNODEBYNAME is defined.  Test USE_GETIPNODEBYNAME instead
	of HAVE_GETIPNODEBYNAME to determine if it should be used.

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
677
678
679
680
2002-11-28  Thorild Seln  <thorild@Update.UU.SE>

	Added IPv6 support with IPv4 compatibility.  (ChangeLog entry
	written by ceder.  Some minor coding standard changes by ceder.
	Three minor problems noted by FIXME comments by ceder.)
	* configure.in: Added --enable-ipv6 switch.  Check for inet_ntop,
	inet_pton, getipnodebyname, gethostbyname2, and struct
	sockaddr_storage.
	* src/isc.h: This commit includes three broken things; see FIXMEs
	in the code.
	Include <sys/socket.h> and <netinet/in.h>.
	(SOCKADDR_STORAGE): Define it to struct sockaddr_storage or struct
	sockaddr, depending on HAVE_STRUCT_SOCKADDR_STORAGE.
	(union sockaddrs): New union.
	(IscAddress): Use union sockaddrs instead of struct sockaddr.
	* src/intern.h (isc_mkipaddress): Use SOCKADDR_STORAGE as
	argument, not struct sockaddr.
	(CHOOSE_IP4OR6): New macro.
	(FOR_EACH_AF): New macro.
	(FOR_EACH_PF): New macro.
	(STORE_ADDR): New macro.
	* src/isc_udp.c (isc_udp_read_fn): Handle IPv6.
	(isc_udp_write_fn): Handle IPv6.
	(isc_mkudpaddress): New argument: address_family.  All callers
	updated.  Handle IPv6.  Broadcast addresses are not supported.
	(isc_createudp): Handle IPv6.  The first argument of socket()
	should be PF_INET for IPv4, not AF_INET.
	(isc_bindudp): Handle IPv6.
	(isc_connectudp): Handle IPv6.
	* src/isc_tcp.c (isc_mktcpaddress): New argument: address_family.
	All callers updated.  Handle IPv6.
	(isc_createtcp): Handle IPv6.  The first argument of socket()
	should be PF_INET for IPv4, not AF_INET.
	(isc_bindtcp): Handle IPv6.
	(isc_connecttcp): Handle IPv6.
	* src/isc_socket.c (cast_to_sockaddr_in): Removed.
	(isc_mkipaddress): Changed struct sockaddr to SOCKADDR_STORAGE.
	(isc_getladdress): Ditto.  Cast argument of getsockname from
	SOCKADDR_STORAGE* to struct sockaddr*.
	(isc_getraddress): Ditto (but for getpeername instead of
	getsockname).
	(isc_getipnum): Handle IPv6.
	(isc_gethostname): Ditto.
	(isc_getportnum): Ditto.
	(isc_getservice): Use isc_getportnum to simplify code.

681
682
683
684
685
686
687
2002-11-25  Per Cederqvist  <ceder@ceder.dyndns.org>

	Port to Autoconf 2.56 and Automake 1.7.1.
	* configure.in: Use autoconf-2.56 and automake-1.7.1: Use
	AC_COMPILE_IFELSE and AC_LANG_PROGRAM instead of AC_TRY_COMPILE.
	Fixed broken quoting.

688
689
690
691
692
693
2002-10-09  Per Cederqvist  <ceder@ceder.dyndns.org>

	Fixed socklen_t fallback code.
	* configure.in: The fallback for socklen_t when no compilation
	worked without a warning was broken.  Fix.

Per Cederqvist's avatar
Per Cederqvist committed
694
695
696
697
698
699
700
701
702
2002-10-02  Per Cederqvist  <ceder@ceder.dyndns.org>

	Port to the ecc compiler.
	* acinclude.m4 (CMOD_C_ATTRIBUTE_UNUSED): Improve the test, by
	checking that __attribute__((unused)) is accepted in a function
	declaration.  The ecc compiler on Linux/ia64 seems to accept it
	and give a warning when used on a local variable, but chokes on
	it when used in a function declaration.

703
704
705
706
707
708
709
710
711
712
713
2002-09-21  Per Cederqvist  <ceder@ceder.dyndns.org>

	Get rid of AIX 4.2 compiler warnings.
	* src/isc_wait.c: Include strings.h.
	* src/isc_event.c: Include strings.h.
	* src/intern.h (socklen_t): Use the type that the configure script
	has found, instead of always using unsigned int.  AIX 4.2 wants an
	size_t, which is an unsigned long.
	* configure.in: Check for strings.h.  Check for a socklen_t type
	that produces no warnings.

714
715
716
717
718
719
720
2002-09-10  Per Cederqvist  <ceder@ingate.com>

	As expected, uint32_t is not universally available.  SunOS
	4.1.1_U1 lacks it.
	* configure.in: Check for uint32_t, and sizeof int and long.
	* src/intern.h: Typedef uint32_t when needed.

721
722
723
724
725
726
2002-09-10  Per Cederqvist  <ceder@ceder.dyndns.org>

	Get rid of more warnings.  (This will probably break on several
	platforms that don't have uint32_t.)
	* configure.in: Cast INADDR_NONE to uint32_t.

Per Cederqvist's avatar
Per Cederqvist committed
727
728
729
730
731
2002-09-09  Per Cederqvist  <ceder@ceder.dyndns.org>

	Port to SunOS 5.4.
	* src/isc_compat.c: Include <netinet/in.h>, needed by SunOS 5.4.

732
733
2002-09-08  Per Cederqvist  <ceder@ceder.dyndns.org>

734
735
736
737
738
	Fix more socklen_t and inet_aton problems.
	* src/intern.h [!HAVE_INET_ATON]: Declare struct in_addr.  
	[!HAVE_SOCKLEN_T]: Add typedef for socklen_t.
	* configure.in: Check for socklen_t.

739
740
741
	Fix include problems with isc_compat.c.
	* src/isc_compat.c: Include <sys/types.h> and <sys/socket.h>.

742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
	Avoid a warning about memset.
	* src/isc_wait.c: Include <string.h> if available, to get rid of a
	warning generated from FD_ZERO on some platforms.

	Use socklen_t and inet_aton to reduce warnings and increase
	stability.
	* src/isc_udp.c (isc_udp_read_fn): Changed type of len from int
	to socklen_t.
	(isc_mkudpaddress): Use inet_aton instead of inet_addr.
	* src/isc_tcp.c (isc_tcp_accept_fn): The third argument of
	accept() should be pointer to socklen_t, not pointer to int.
	(isc_mktcpaddress): Use inet_aton instead of inet_addr.
	* src/isc_socket.c (isc_getladdress): Changed type of len from int
	to socklen_t.
	(isc_getraddress): Ditto.

	Provide a replacement for inet_aton for systems that only have
	inet_addr.
	* src/isc_compat.c: New file.
	(inet_aton): New compatibility function.
	* src/intern.h (inet_aton): Added a declaration if HAVE_INET_ATON
	is false.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_compat.c.
	* configure.in: Check for -lsockt and -lnsl if needed.  Check for
	inet_aton.  Check for INADDR_NONE only if inet_aton isn't
	available.

769
770
2002-09-07  Per Cederqvist  <ceder@ceder.dyndns.org>

771
772
773
774
775
776
777
778
	Get rid of warnings from casting a struct sockaddr* to a struct
	sockaddr_in*.
	* src/isc_socket.c (cast_to_sockaddr_in): New static inline
	function.
	(isc_getipnum): Use it, to get rid of a warning.
	(isc_gethostname): Ditto.
	(isc_getportnum): Ditto.
	(isc_getservice): Ditto.
Per Cederqvist's avatar
Per Cederqvist committed
779
	* configure.in: Check for inline support.
780

781
782
783
	Use INADDR_NONE to get rid of a compiler warning.
	* src/isc_udp.c (isc_mkudpaddress): Use INADDR_NONE instead of -1.
	* src/isc_tcp.c (isc_mktcpaddress): Use INADDR_NONE instead of -1.
Per Cederqvist's avatar
Per Cederqvist committed
784
	* configure.in: Check for INADDR_NONE.
785

Per Cederqvist's avatar
Per Cederqvist committed
786
787
788
789
790
791
2002-08-23  Per Cederqvist  <ceder@ceder.dyndns.org>

	Waste less bytes.
	* src/isc_socket.c (isc_getipnum): Use the entire hostname
	buffer.

792
793
794
795
796
797
798
799
2002-08-20  Per Cederqvist  <ceder@ceder.dyndns.org>

	Don't include <sys/time.h> when it isn't available.
	* configure.in: Check for <sys/time.h>.
	* src/isc_event.c: Fix include guards for <time.h> and <sys/time.h>.
	* src/isc_socket.c: Ditto.
	* src/isc_wait.c: Ditto.

Per Cederqvist's avatar
Per Cederqvist committed
800
801
802
803
804
805
2002-08-10  Per Cederqvist  <ceder@ceder.dyndns.org>

	Check for ar. (Bug 523).
	* configure.in: Check for ar.  Look in $PATH:/usr/ccs/bin, and
	stop with an error if no ar can be found.

806
807
2002-04-11  David Byers  <david.byers@swipnet.se>

Per Cederqvist's avatar
Per Cederqvist committed
808
	* configure.in: Added AC_PREREQ(2.53).
809

Per Cederqvist's avatar
Per Cederqvist committed
810
2001-09-23  Per Cederqvist  <ceder@moria>
811

Per Cederqvist's avatar
Per Cederqvist committed
812
	* Re-applied a couple of lyskomd modifications.
813

Per Cederqvist's avatar
Per Cederqvist committed
814
    1999-07-05  Per Cederqvist  <ceder@gratia>
815
816
817
818
819

	Delay problems with sessions that are deconnected until we can
	do a proper fix.
	* src/isc.h (ISC_DEFAULT_MAX_QUEUED_SIZE): Double to 600.

Per Cederqvist's avatar
Per Cederqvist committed
820
    1999-05-21  Per Cederqvist  <ceder@lysator.liu.se>
821
822
823
824
825

	Remove all gcov files in "make mostlyclean".
	* src/Makefile.am (MOSTLYCLEANFILES): Added "*.da", "*.bb",
	"*.gcov" and "*.bbg".

Per Cederqvist's avatar
Per Cederqvist committed
826
    1999-05-17  Per Cederqvist  <ceder@lysator.liu.se>
Per Cederqvist's avatar
Per Cederqvist committed
827
828
829
830
831
832

	Don't needlessly call time().
	* src/isc.h (IscSession): Comment out idlesince.
	* src/isc_event.c (isc_getnextevent): Don't waste time setting
	idlesince, which lyskomd doesn't use.

Per Cederqvist's avatar
Per Cederqvist committed
833
    1999-05-01  Per Cederqvist  <ceder@lysator.liu.se>
Per Cederqvist's avatar
Per Cederqvist committed
834
835
836
837
838
839
840
841

	The LysKOM server should not install isc thingies.
	* src/Makefile.am (noinst_LIBRARIES, noinst_HEADERS): Use instead
	of lib_LIBRARIES and include_HEADERS so that nothing from isc gets
	installed by lyskomd.
	* man/Makefile.am (noinst_MANS): Use noinst_MANS instead of
	man_MANS so that nothing from isc gets installed by lyskomd.

Per Cederqvist's avatar
Per Cederqvist committed
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
2001-09-23  Per Cederqvist  <ceder@lysator.liu.se>

	* Version 1.01 released.

	Release preparations.
	* configure.in: Release 1.01.
	* NEWS: Entry for 1.01 written.

	Port to Autoconf 2.52 and Automake 1.5.
	* RELEASING: Updated for automake 1.5.
	* configure.in: Adjusted to autoconf 2.52: AC_INIT Now takes
	package name and version as arguments.  Use AC_CONFIG_SRCDIR.  Use
	AC_HELP_STRING to format help strings.  Use CMOD_CHECK_CC_OPT
	instead of CMOD_COMPILER_CC_ACCEPTS.  Don't use -Wpointer-arith.
	Use AC_CONFIG_FILES.
	* acinclude.m4 (CMOD_COMPILER_CC_ACCEPTS): Removed.
	(CMOD_CHECK_CC_OPT): New macro.
	* README.DEVO: Updated for autoconf 2.52 and automake 1.5.

	Removed an unused attribute in IscSession.  Handle
	isc_getraddress() failures properly.
	* src/isc_tcp.c (isc_tcp_accept_fn): Don't set scb->mode.  Fail
	properly if isc_getraddress() fails.
	* src/isc.h (IscSession): Delete the "mode" attribute, which was
	only set in some cases and never used.
	* src/isc_session.c (isc_openfile): Don't set scb->mode.

Per Cederqvist's avatar
Per Cederqvist 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
1999-05-01  Per Cederqvist  <ceder@lysator.liu.se>

	* Version 1.00 released.

	Release preparations.
	* configure.in: Release 1.00.
	* TODO: Updated.
	* README: Updated.
	* NEWS: Entry for 1.00 written.

	"make maintainer-clean" shoudl remove everything that can be
	recreated.
	* Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in,
	aclocal.m4, configure, install-sh, mkinstalldirs, missing, INSTALL
	and COPYING.
	* src/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.
	* man/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.
	* doc/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.
	* demo/Makefile.am (MAINTAINERCLEANFILES): Added Makefile.in.

	Removed support for isc_printf and isc_vprintf for license,
	performance and portability reasons.
	* configure.in: Removed --enable-isc-printf.
	* src/isc_stdout.c (isc_printf): Removed.
	(isc_vprintf): Removed.
	(send_scb): Removed.
	(send_putc): Removed.
	* src/isc.h (isc_printf): Removed.
	(isc_vprintf): Removed.
	* src/Makefile.am (libisc_a_LIBADD): Removed.
	(isc_stdout.o): No longer depend on ../config.status.
	* src/printf.c: Removed.

	Merged in all changes made to ISC in the lyskomd code from the
	isc_merge_1999_04_21 tag to the isc_merge_1999_05_01 tag.  Details
	follows:

    1999-04-28  Per Cederqvist  <ceder@lysator.liu.se>
Per Cederqvist's avatar
Per Cederqvist committed
907
908
909
910
911
912
913

	Added some output functions.
	* src/isc_stdout.c (isc_puts): New function.
	(isc_putul): New function.
	* src/isc.h (isc_puts): New function.
	(isc_putul): New function.

Per Cederqvist's avatar
Per Cederqvist committed
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
1999-04-24  Per Cederqvist  <ceder@lysator.liu.se>

	Make it easier to compile ISC out-of-the-repository.
	* README.DEVO: Mention bootstrap.sh.
	* bootstrap.sh: New file.

	Fix file inclusions.
	* src/isc_relocate.c: <time.h> and <stddef.h> must be included
	before "isc.h".
	* src/isc_alloc.c: <time.h> must be included before "isc.h".
	* src/isc_master.c: Likewise.
	* src/isc_output.c: Likewise.
	* src/isc_tcp.c: Likewise.
	* src/isc_udp.c: Likewise.

	Update at least one of the man pages.
	* man/isc_close.3x: Updated.

	Distribute ISC under LGPL.
	* README: Changed license to LGPL.
	* COPYING.LIB: New file, containing LGPL, the license this
	library is distributed under.
	* COPYING: No longer under version control.  This file is still
	included in the distribution, even though ISC is licensed under
	LGPL instead of GPL, for two reasons: LGPL allows you to change
	the license to GPL, and automake requires the file COPYING.
	* Makefile.am: Changed license to LGPL.
	* configure.in: Changed license to LGPL.
	* demo/Makefile.am: Changed license to LGPL.
	* man/Makefile.am: Changed license to LGPL.
	* man/TEMPLATE: Changed license to LGPL.
	* man/isc.3x: Changed license to LGPL.
	* man/isc_close.3x: Changed license to LGPL.
	* man/isc_createtcp.3x: Changed license to LGPL.
	* man/isc_destroy.3x: Changed license to LGPL.
	* man/isc_initialize.3x: Changed license to LGPL.
	* man/isc_listentcp.3x: Changed license to LGPL.
	* man/isc_openfd.3x: Changed license to LGPL.
	* man/isc_openfile.3x: Changed license to LGPL.
	* man/isc_opentcp.3x: Changed license to LGPL.
	* man/isc_shutdown.3x: Changed license to LGPL.
	* man/isc_unlisten.3x: Changed license to LGPL.
	* src/Makefile.am: Changed license to LGPL.
	* src/intern.h: Changed license to LGPL.
	* src/isc.h: Changed license to LGPL.
	* src/isc_abort.c: Changed license to LGPL.
	* src/isc_alloc.c: Changed license to LGPL.
	* src/isc_event.c: Changed license to LGPL.
	* src/isc_handler.c: Changed license to LGPL.
	* src/isc_master.c: Changed license to LGPL.
	* src/isc_message.c: Changed license to LGPL.
	* src/isc_output.c: Changed license to LGPL.
	* src/isc_queue.c: Changed license to LGPL.
	* src/isc_relocate.c: Changed license to LGPL.
	* src/isc_session.c: Changed license to LGPL.
	* src/isc_socket.c: Changed license to LGPL.
	* src/isc_stdout.c: Changed license to LGPL.
	* src/isc_tcp.c: Changed license to LGPL.
	* src/isc_udp.c: Changed license to LGPL.
	* src/isc_wait.c: Changed license to LGPL.
	* src/unused.h: Changed license to LGPL.

1999-04-22  Per Cederqvist  <ceder@lysator.liu.se>

	Distribute administrative files.
	* Makefile.am (EXTRA_DIST): Added README.DEVO and RELEASING.

	Merged in all changes made to ISC in the lyskomd code from ISC
	0.99 to the isc_merge_1999_04_21 tag.  Details follows:

    1999-04-17  Per Cederqvist  <ceder@lysator.liu.se>
985
986
987
988
989
990
991
992

	Added full support for fd relocation.
	* src/isc_relocate.c (isc_relocate_fd): Implemented for real.
	* src/isc_event.c (isc_getnextevent): Return
	ISC_EVENT_LOGIN_UNRELOCATED instead of ISC_EVENT_LOGIN if a
	file descriptor relocation failed.
	* src/isc.h (IscEventType): New event: ISC_EVENT_LOGIN_UNRELOCATED.

Per Cederqvist's avatar
Per Cederqvist committed
993
    1999-04-17  Per Cederqvist  <ceder@gratia>
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011

	Added limited support for fd relocation.  Error handling still
	needed.
	* src/isc_udp.c (isc_createudp): Relocate the fd.
	* src/isc_tcp.c (isc_tcp_accept_fn): isc_createtcp will close the
	file descriptor if it fails, so don't re-close it here.
	isc_createtcp will also set the fd attribute of the session; don't
	set it again.
	(isc_createtcp): Relocate the fd.  Be careful to always close it
	if an error occurs.
	* src/isc_relocate.c (isc_relocate_fd): New file and function.
	This is still a dummy implementation.
	* src/isc_master.c (isc_initialize): Expect master config version
	1006 and session config 1002.  Handle fd_relocate.
	* src/isc.h (IscSessionConfig): Added fd_relocate.
	* src/intern.h (isc_relocate_fd): New function.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_relocate.c.

Per Cederqvist's avatar
Per Cederqvist committed
1012
    1999-04-16  Per Cederqvist  <ceder@gratia>
1013
1014
1015
1016
1017

	Simplify the use of IscHandlerList.  (This needs more
	documentation.)
	* src/isc.h (IscSession): Removed the "IscHandlerCache fun"
	member.
Per Cederqvist's avatar
Per Cederqvist committed
1018
	(IscHandlerList): Renamed the "old" member to "current".
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
	(ISC_HCALLFUN1): Adapted to IscHandlerList changes.
	(ISC_HCALLFUN2): Adapted to IscHandlerList changes.
	(ISC_HCALLFUN3): Adapted to IscHandlerList changes.
	* src/intern.h (ISC_SCALLFUN1): Use ISC_HCALLFUN1 to simplify
	code.  Adapted to IscHandlerList changes.
	(ISC_SCALLFUN2): Analogous.
	(ISC_SCALLFUN3): Analogous.
	* src/isc_handler.c (isc_pushhandler): Modified so that the
 	members of the member "current" of IscHandlerList objects points
 	to the IscHandler object where the callbacks that should be used
 	exist.  Once that changes was done, there is no need for the
 	"scb->fun" member, so it was removed.
	(isc_pophandler): Adjusted accordingly.
	* src/isc_session.c (isc_create): Removed the code that
	initialized scb->fun.
	(isc_destroy): Use scb->handlers->current instead of scb->fun.
	* src/isc_event.c (isc_getnextevent): Use scb->handlers->current
	instead of scb->fun.

Per Cederqvist's avatar
Per Cederqvist committed
1038
    1999-04-15  Per Cederqvist  <ceder@lysator.liu.se>
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050

	Allow disabled sessions to emit data.  It is input from the
	sessions that is disabled.
	* src/isc_stdout.c (isc_putc): Allow output to sessions that are
	in state ISC_STATE_DISABLED.
	(isc_write): Likewise.
	* src/isc_output.c (isc_flush): Flush pending output even
	when the session is in ISC_STATE_DISABLED.
	(isc_oflush): Likewise.
	* src/isc_event.c (isc_getnextevent): Flush pending output even
	when the session is in ISC_STATE_DISABLED.

Per Cederqvist's avatar
Per Cederqvist committed
1051
    1999-04-11  Per Cederqvist  <ceder@gratia>
Per Cederqvist's avatar
Per Cederqvist committed
1052
1053
1054
1055

	Rebuild more often.
	* src/Makefile.am (isc_stdout.o): Depend on ../config.status.

Per Cederqvist's avatar
Per Cederqvist committed
1056
    1999-04-05  Per Cederqvist  <ceder@gratia>
1057
1058
1059
1060

	Get rid of useless compiler warnings.
	* configure.in: Don't use -Wtraditional.

Per Cederqvist's avatar
Per Cederqvist committed
1061
    1999-02-05  Per Cederqvist  <ceder@gratia>
1062
1063
1064
1065
1066

	Get rid of a compiler warning.
	* src/isc_alloc.c (ISC_MAGIC_ALLOC): This is an unsigned constant.
	(ISC_MAGIC_FREE): Likewise.

Per Cederqvist's avatar
Per Cederqvist committed
1067
    1999-01-18  David Byers  <davby@ida.liu.se>
1068
1069
1070

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

Per Cederqvist's avatar
Per Cederqvist committed
1071
    1999-01-15  David Byers  <davby@ida.liu.se>
1072
1073
1074
1075

	* configure.in: Added --with-checker, --with-gcov and
	--with-optimization.

Per Cederqvist's avatar
Per Cederqvist committed
1076
    1998-10-06  Per Cederqvist  <ceder@gratia>
Per Cederqvist's avatar
Per Cederqvist committed
1077
1078
1079
1080

	Port to glibc2.
	* src/isc_session.c: Include <time.h>.

Per Cederqvist's avatar
Per Cederqvist committed
1081
    1998-07-09  Per Cederqvist  <ceder@lysator.liu.se>
1082
1083
1084
1085

	--enable-isc-printf was broken.
	* src/isc_wait.c: Include <stdarg.h>.

Per Cederqvist's avatar
Per Cederqvist committed
1086
1087
1088
1089
1090
1091
1092
1093
1094
1999-04-21  Per Cederqvist  <ceder@lysator.liu.se>
	
	* demo/Makefile.am: Insert copyright header.

	Clean up the configure script.
	* configure.in (AC_PROG_MAKE_SET, AC_PROG_INSTALL): Removed.  This
	is automatically done by AM_INIT_AUTOMAKE.
	(AM_PROG_CC_STDC):  Use it instead of AM_C_PROTOTYPES.

Per Cederqvist's avatar
Per Cederqvist committed
1095
1096
1998-07-06  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
1097
1098
	* Version 0.99 released.

Per Cederqvist's avatar
Per Cederqvist committed
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
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
1219
1220
1221
1222
1223
1224
1225
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
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
	Release preparations.
	* NEWS: Updated.
	* README: Updated.
	* RELEASING: New file.
	* README.DEVO: New file.

	Include isc_wait.o in the built library.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_wait.c.

	Improved portability.
	* src/isc_wait.c: Check TIME_WITH_SYS_TIME.
	* src/isc_socket.c: Check TIME_WITH_SYS_TIME.
	* src/isc_event.c: Check TIME_WITH_SYS_TIME.

	Ported to Solaris 2.7 Beta/gcc 2.8.1.
	* src/isc_udp.c: Include <unistd.h>.
	(isc_udp_read_fn): Now static.  Flag unused arguments.
	(isc_udp_destroy_fn): Likewise.
	(isc_udp_write_fn): Now static.
	(isc_mkudpaddress): Likewise.  Don't pass potentially negative
	characters to isdigit.
	* src/isc_tcp.c: Include <unistd.h>.
	(isc_tcp_accept_fn): Now static.  Flag unused arguments.
	(isc_tcp_destroy_fn): Likewise.
	(isc_mktcpaddress): Now static.  Don't pass potentially negative
	characters to isdigit.
	* src/isc_session.c: Include <unistd.h>.
	(isc_default_read_fn): Flag unused arguments.
	(isc_default_write_fn): Flag unused arguments.
	(isc_default_close_fn): Flag unused arguments.
	(isc_file_destroy_fn): Flag unused arguments.
	* src/isc_alloc.c (isc_realloc): Code simplified.
	(isc_free): Code simplified.
	* src/unused.h: New file (taken from cmod).

	Added automake/autoconf support.
	* AUTHORS: New file.
	* Makefile.am: New file.
	* NEWS: New file.
	* acinclude.m4: New file.
	* configure.in: New file.
	* demo/Makefile.am: New file.
	* demo/README: New file.
	* doc/Makefile.am: New file.
	* man/Makefile.am: New file.
	* src/Makefile.am: New file.
	* man/Makefile: This file is now generated by configure.  Don't
	store it under version control.
	* src/Makefile: Likewise.
	* demo/Makefile: Likewise.
	* build/stddef.h: File removed.
	* build/gmkdep: File removed.
	
1998-06-21  Per Cederqvist  <ceder@lysator.liu.se>

	Incorporated all relevant improvements made to ISC in
	the committed sources of lyskomd as of 1998-06-21.  Edited details
	follows.

	Include file improvements.
	* src/isc_event.c: Include <sys/select.h>, <unistd.h> and
	<string.h> for increased portability.
	* src/printf.c: Check HAVE_STRING_H and HAVE_STDLIB_H before
	including those files.  Don't forward-declare memchr.

	Ignore attempts to look up the NULL host name.
	* src/isc_socket.c (isc_gethostname): Return NULL if given a NULL
	IscAddress.

1998-05-07  Per Cederqvist  <ceder@lysator.liu.se>

	Incorporated all relevant improvements made to ISC in
	kom++-0.7.post.2.  Edited details follows.
	
	Avoid including more files than necessary.
	* src/isc.h: Don't include any include files.
	* src/isc_abort.c: Don't declare system functions.  Fixed include
	statements.
	* src/isc_alloc.c: Likewise.
	* src/isc_event.c: Likewise.
	* src/isc_message.c: Likewise.
	* src/isc_output.c: Likewise.
	* src/isc_session.c: Likewise.
	* src/isc_socket.c: Likewise.
	* src/isc_stdout.c: Likewise.
        * src/isc_tcp.c: Likewise.
	* src/isc_udp.c: Likewise.
	* src/isc_handler.c: Fixed include statements.
	* src/isc_master: Likewise.
	* src/isc_queue.c: Likewise.

	Added the ability to wait until a connection attempt (initiated by
	this process) either fails or succeeds.
	* src/isc.h: (isc_wait): Prototype added.
	* src/isc_wait.c: New file, containing isc_wait.

	Only support isc_printf and isc_vprintf if ISC_PRINTF_SUPPORT if
	defined.  These functions may lead to bad use of the buffers.
	* src/isc.h: (isc_vprintf, isc_printf): Only declare if
	ISC_PRINTF_SUPPORT is defined.  Fail to compile if
	ISC_PRINTF_SUPPORT is defined but HAVE_STDARG_H isn't.
 	* src/isc_stdout.c (send_scb, send_putc, isc_vprintf, isc_printf):
	Only defined if ISC_PRINTF_SUPPORT is defined.

	Make sure that isc_getnextevent only returns a single
	ISC_EVENT_LOGOUT message when a session logs out.
	* src/isc.h: (IscSessionState): New state: ISC_STATE_CLOSING2.
	* src/isc_event.c (isc_getnextevent): There is now only one
	ISC_EVENT_LOGOUT message per session.  Set the state to
	ISC_STATE_CLOSING2 when generating an ISC_EVENT_LOGOUT message.
 	* src/isc_output.c (isc_flush): Treat ISC_STATE_CLOSING2 as
	ISC_STATE_CLOSING.
	(isc_oflush): Likewise.
	
	Portability fixes.
	* src/isc_alloc.c (isc_mallocfn, isc_reallocfn, isc_freefn):
	Removed lame casts.

	Make sure that isc_malloc returns a block that is aligned on a
	"long" boundary.
 	* src/isc_alloc.c (isc_malloc, isc_free, isc_realloc): Portablilty
	fix: Align data on a "long" boundary, not only an "int" boundary.

	Typo fix.
	* src/isc_event.c (isc_getnextevent): Fixed a spelling error in a
	comment.
	
	Make sure that errors are reported to the proper session.
  	* src/isc_event.c (isc_getnextevent): event->session was sometimes
	set erronously if an error occured in select() or if a timeout
	occured.

	Use O_NONBLOCK instead of the now obsolete name FNDELAY.
	* src/isc_session.c (isc_openfd): Use O_NONBLOCK instead of FNDELAY.
	* src/isc_tcp.c (isc_createtcp): Use O_NONBLOCK instead of FNDELAY.
	* src/isc_udp.c (isc_createudp): Use O_NONBLOCK instead of FNDELAY.

	Avoid warnings by adding a dubious cast.
 	* src/isc_socket.c (isc_gethostname): Cast argument to
	gethostbyaddr to a char* to avoid a warning.
	
	Portability fix: Renamed _printf to UCB_printf.
	* src/isc_stdout.c (isc_printf, isc_vprintf): Call UCB_printf
	instead of _printf.
	* src/printf.c (UCB_printf): Renamed _printf to UCB_printf (to avoid
	conflicts on HPUX).

	Don't use obsolete setsockopt interfaces.
	* src/isc_tcp.c (isc_createtcp): Fixed calls to setsockopt with
	SO_LINGER and SO_REUSEADDR arguments.  The old-style style
	previously used should no longer be necessary on modern operating
	systems, and in fact it no longer works everywere.  
	* src/isc_udp.c (isc_createudp): Fixed calls to setsockopt with
	SO_LINGER and SO_REUSEADDR arguments.  The old-style style
	previously used should no longer be necessary on modern operating
	systems, and in fact it no longer works everywere.  

	If an attempt to bind failed with EADDRINUSE all the retries
	would automatically fail.
	* src/isc_tcp.c (isc_listentcp): Clear errno on each loop in the
	retry loop.

	Include the licensing conditions used by this package.
	* COPYING: New file.

1998-04-03  Per Cederqvist  <ceder@signum.se>

	Port to glibc 2, where errno is a macro.
	* isc.h (IscSession::isc_errno): New name for former struct member
	errno.  All users updated.

1996-07-24  Per Cederqvist  <ceder@lysator.liu.se>

	ISC_EVENT_LOGIN events now return the listening session in the
	event, so that it can be used to easily determine which kind of
	connection that was made.  66.7 % of the code was contributed by
	<linus@lysator.liu.se>.
	* src/isc.h (IscEvent): New field: listen_session.
	* src/isc_event.c (isc_getnextevent): Fill in listen_session when
	an ISC_EVENT_LOGIN event is created.  Set it to NULL in all other
	cases.

1996-07-23  Per Cederqvist  <ceder@lysator.liu.se>

	* Imported ISC version 0.98.3.