ChangeLog 40.8 KB
Newer Older
1
2
2003-08-01  Per Cederqvist  <ceder@ceder.dyndns.org>

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
	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.

20
21
22
23
24
	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().

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
	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.

49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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.

89
90
2003-07-28  Per Cederqvist  <ceder@ceder.dyndns.org>

Per Cederqvist's avatar
Per Cederqvist committed
91
92
93
94
	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.

95
96
97
98
99
100
	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.

101
102
103
	Distribute isc_addr.h, which was added yesterday.
	* src/Makefile.am (libisc_a_SOURCES): Added isc_addr.h.

104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
	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.

127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
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.

144
145
146
147
148
149
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.

150
151
152
153
154
155
156
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.

157
158
2003-07-12  Per Cederqvist  <ceder@ceder.dyndns.org>

Per Cederqvist's avatar
Per Cederqvist committed
159
160
161
162
163
164
	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.

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
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
	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).

385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
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
400
401
2003-01-06  Per Cederqvist  <ceder@ceder.dyndns.org>

402
	Fix IPv4 under Solaris 2.8.  (Patch by Thorild Seln.)
Per Cederqvist's avatar
Per Cederqvist committed
403
404
405
406
407
	* 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.

408
409
410
411
412
413
414
415
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.

416
417
418
419
420
421
422
423
424
425
426
427
428
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".

429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
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.

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

493
494
495
496
497
498
499
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.

500
501
502
503
504
505
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
506
507
508
509
510
511
512
513
514
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.

515
516
517
518
519
520
521
522
523
524
525
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.

526
527
528
529
530
531
532
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.

533
534
535
536
537
538
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
539
540
541
542
543
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.

544
545
2002-09-08  Per Cederqvist  <ceder@ceder.dyndns.org>

546
547
548
549
550
	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.

551
552
553
	Fix include problems with isc_compat.c.
	* src/isc_compat.c: Include <sys/types.h> and <sys/socket.h>.

554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
	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.

581
582
2002-09-07  Per Cederqvist  <ceder@ceder.dyndns.org>

583
584
585
586
587
588
589
590
	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
591
	* configure.in: Check for inline support.
592

593
594
595
	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
596
	* configure.in: Check for INADDR_NONE.
597

Per Cederqvist's avatar
Per Cederqvist committed
598
599
600
601
602
603
2002-08-23  Per Cederqvist  <ceder@ceder.dyndns.org>

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

604
605
606
607
608
609
610
611
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
612
613
614
615
616
617
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.

618
619
2002-04-11  David Byers  <david.byers@swipnet.se>

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

Per Cederqvist's avatar
Per Cederqvist committed
622
2001-09-23  Per Cederqvist  <ceder@moria>
623

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

Per Cederqvist's avatar
Per Cederqvist committed
626
    1999-07-05  Per Cederqvist  <ceder@gratia>
627
628
629
630
631

	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
632
    1999-05-21  Per Cederqvist  <ceder@lysator.liu.se>
633
634
635
636
637

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

Per Cederqvist's avatar
Per Cederqvist committed
638
    1999-05-17  Per Cederqvist  <ceder@lysator.liu.se>
Per Cederqvist's avatar
Per Cederqvist committed
639
640
641
642
643
644

	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
645
    1999-05-01  Per Cederqvist  <ceder@lysator.liu.se>
Per Cederqvist's avatar
Per Cederqvist committed
646
647
648
649
650
651
652
653

	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
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
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
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
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
719
720
721
722
723
724
725

	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
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
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>
797
798
799
800
801
802
803
804

	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
805
    1999-04-17  Per Cederqvist  <ceder@gratia>
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823

	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
824
    1999-04-16  Per Cederqvist  <ceder@gratia>
825
826
827
828
829

	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
830
	(IscHandlerList): Renamed the "old" member to "current".
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
	(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
850
    1999-04-15  Per Cederqvist  <ceder@lysator.liu.se>
851
852
853
854
855
856
857
858
859
860
861
862

	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
863
    1999-04-11  Per Cederqvist  <ceder@gratia>
Per Cederqvist's avatar
Per Cederqvist committed
864
865
866
867

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

Per Cederqvist's avatar
Per Cederqvist committed
868
    1999-04-05  Per Cederqvist  <ceder@gratia>
869
870
871
872

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

Per Cederqvist's avatar
Per Cederqvist committed
873
    1999-02-05  Per Cederqvist  <ceder@gratia>
874
875
876
877
878

	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
879
    1999-01-18  David Byers  <davby@ida.liu.se>
880
881
882

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

Per Cederqvist's avatar
Per Cederqvist committed
883
    1999-01-15  David Byers  <davby@ida.liu.se>
884
885
886
887

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

Per Cederqvist's avatar
Per Cederqvist committed
888
    1998-10-06  Per Cederqvist  <ceder@gratia>
Per Cederqvist's avatar
Per Cederqvist committed
889
890
891
892

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

Per Cederqvist's avatar
Per Cederqvist committed
893
    1998-07-09  Per Cederqvist  <ceder@lysator.liu.se>
894
895
896
897

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

Per Cederqvist's avatar
Per Cederqvist committed
898
899
900
901
902
903
904
905
906
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
907
908
1998-07-06  Per Cederqvist  <ceder@lysator.liu.se>

Per Cederqvist's avatar
Per Cederqvist committed
909
910
	* Version 0.99 released.

Per Cederqvist's avatar
Per Cederqvist committed
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
	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.