Commit graph

934 commits

Author SHA1 Message Date
Michael Graff
9403a56228 checkpoint 2000-06-09 00:11:39 +00:00
Michael Graff
118332fc5c snapshot 2000-06-08 23:42:17 +00:00
David Lawrence
6ba9a50031 need errno.h for errno 2000-06-08 23:20:01 +00:00
Michael Graff
60a7475dd8 checkpoint 2000-06-08 22:18:53 +00:00
Michael Graff
81b7c342c4 s/ISC_R_ENTROPY/ISC_R_NOENTROPY/g 2000-06-08 22:17:03 +00:00
David Lawrence
076f3bc6ad use ANSI memset instead of bzero 2000-06-08 20:42:11 +00:00
Michael Graff
d10733a5a3 add ISC_R_ENTROPY 2000-06-08 19:23:04 +00:00
Michael Graff
016742f7d8 add stirring functions and other bits. Snapshot. 2000-06-08 06:35:49 +00:00
Michael Graff
1e3c9ce3ab kill a warning on some systems. 2000-06-08 05:26:00 +00:00
Michael Graff
ccc067f7d5 enable INSIST/REQUIRE() checking of bound status on sockets 2000-06-08 00:23:54 +00:00
Michael Graff
270ad529d3 snapshot 2000-06-07 22:15:55 +00:00
Michael Graff
17b8fc714a snapshot 2000-06-07 20:55:12 +00:00
Michael Graff
90407942d3 Use autoconf's AC_C_BIGENDIAN macro to detect endian flavor, and use WORDS_BIGENDIAN from config.h{,.in} 2000-06-07 19:41:49 +00:00
Brian Wellington
1ee3b153b6 Added length constants, changed _final parameter from array to pointer. 2000-06-07 02:28:43 +00:00
Michael Graff
fbb2ab3056 md5 endian doesn't seem to matter? 2000-06-07 02:21:39 +00:00
Michael Graff
f2314fbd79 fix comments 2000-06-07 01:17:06 +00:00
Michael Graff
db4871e843 complain if BYTE_ORDER isn't defined 2000-06-07 01:14:26 +00:00
Michael Graff
bb2d54f1b3 build md5.c 2000-06-07 00:49:04 +00:00
Michael Graff
801c511ecd s/u_int/unsigned int/g 2000-06-07 00:30:42 +00:00
Michael Graff
676c534c8d We really don't need to export the sha1 transform() function, it is internal only. 2000-06-07 00:22:32 +00:00
Michael Graff
74da616f07 add sha1 implementation 2000-06-07 00:15:19 +00:00
David Lawrence
5fda9ca75a redefined ISC_OFFSET_MAXIMUM 2000-06-06 22:10:10 +00:00
Brian Wellington
54ef500660 Turn on ISC_MEM_DEBUG by default and define isc_mem_debugging as an extern
defaulting to ISC_FALSE.
2000-06-06 18:07:38 +00:00
Brian Wellington
4c050ce9dc typo 2000-06-06 17:57:58 +00:00
Brian Wellington
36bcb04af2 If ISC_MEM_DEBUG is enabled, the variable isc_mem_debugging controls
whether messages are printed or not.
2000-06-06 17:50:43 +00:00
Andreas Gustafsson
f6684513fa style; no functional change 2000-06-06 17:50:38 +00:00
Andreas Gustafsson
ee03a00244 changed references to 'binary buffer' in comments
to just 'buffer', as there is no longer a distinction between binary
and text buffers
2000-06-06 17:47:54 +00:00
David Lawrence
ed71ea51c6 Silence a few more warnings:
+ missing sigwait prototype on BSD/OS 4.0/4.0.1
 + PTHREAD_ONCE_INIT unbraced initializer warnings on Solaris 2.8.
 + IN6ADDR_ANY_INIT unbraced initializer warnings on BSD/OS 4.*, Linux and
   Solaris 2.8.
2000-06-06 16:06:50 +00:00
Michael Graff
527bf54995 s/u_int32_t/isc_uint32_t/g 2000-06-03 05:38:29 +00:00
Michael Graff
2f1059efb7 checkpoint 2000-06-03 02:15:08 +00:00
Michael Graff
9f732d73da put the correct (new) socket on the linked list, not the existing (listen) socket. 2000-06-02 20:09:01 +00:00
Brian Wellington
ac37a32d23 If isc_log_settag() was used to set a non-NULL tag, the allocated memory
was never freed.
2000-06-02 18:15:45 +00:00
Andreas Gustafsson
35af0018dd made isc_sockaddr_totext() return failure rather than catch an
assertion when confronted with an unsupported address family, like it used to
before it was changed to use isc_netaddr_totext() internally
2000-06-02 17:48:31 +00:00
Michael Graff
0a161e9da7 use a linked list, rather than a counter, to keep track of sockets. This makes
debugging easier.  Also, while here, s/EMPTY/ISC_LIST_EMPTY/g
2000-06-02 01:27:27 +00:00
David Lawrence
87cafc5e70 Megacommit of many files.
Mostly, several functions that take pointers as arguments, almost
always char * pointers, had those pointers qualified with "const".
Those that returned pointers to previously const-qualified arguments
had their return values qualified as const.  Some structure members
were qualified as const to retain that attribute from the variables
from which they were assigned.

The macro DE_CONST was added to isc/util.h to deal with a handful of very
special places where something is qualified as const but really needs to have
its const qualifier removed.

Also cleaned up a few places where variable names clashed with reserved
identifiers.  (Which mostly works fine, but strictly speaking is undefined
by the standard.)

Minor other ISC style cleanups.
2000-06-01 17:20:56 +00:00
Michael Graff
d98c74e2ec set the default destination port in the view, and use it when returning addresses from the adb. 2000-06-01 00:30:58 +00:00
Michael Graff
bfd98dd959 don't log ports where they don't make sense 2000-05-31 23:03:01 +00:00
Andreas Gustafsson
6c7bfa7c59 added ISC_NETADDR_FORMATSIZE as a counterpart to
ISC_SOCKADDR_FORMATSIZE and commented them both
2000-05-26 16:39:28 +00:00
Andreas Gustafsson
bb25076ffc implement isc_sockaddr_totext() in terms of isc_netaddr_totext() 2000-05-26 00:41:57 +00:00
Andreas Gustafsson
8eaa51a699 new functions isc_netaddr_totext() and isc_netaddr_format() 2000-05-26 00:41:03 +00:00
David Lawrence
05e3940191 made operand to left shift in ISC_OFFSET_MAXIMUM unsigned to avoid
integer overflow.
2000-05-25 16:44:25 +00:00
Andreas Gustafsson
1b106e224d typo: *lcfgp points to a logging configuration
not a logging context
2000-05-25 05:07:21 +00:00
David Lawrence
6deb631b20 208. [func] Added ISC_OFFSET_MAXIMUM for the maximum value
of an isc_offset_t.
2000-05-25 03:34:34 +00:00
David Lawrence
db9628e897 changed "c" stack variable from char to unsigned char to quiet Solaris 5.8
warnings that "subscript has type char".
2000-05-25 01:08:07 +00:00
David Lawrence
826c281a05 Solaris 5.6 gives this warning about a left shift to set the high bit:
warning: integer overflow detected: op "<<"
unless the operand is unsigned/
2000-05-24 21:36:01 +00:00
David Lawrence
bad71acec3 removed non-existing directory ./include from CINCLUDES 2000-05-24 18:38:43 +00:00
David Lawrence
ed019cabc1 fixed lines > 79 columns wide 2000-05-24 05:10:00 +00:00
David Lawrence
604a596b5f added an UNUSED() to shut up the irix compiler. 2000-05-24 02:39:01 +00:00
David Lawrence
77685300d9 cast isc_time_seconds to long when assigning to a timeval.tv_sec, and explain
why this is an ok thing to do.  shuts up the irix compiler.
2000-05-24 02:36:49 +00:00
David Lawrence
389b5c8593 added a sync_channellist call to isc_log_create to ensure the channellist in
the logconfig is properly dimensioned, and only free the channellist
memory in isc_logconfig_destroy if the channellist_count is > 0.
the first addresses a problem that could occur when a successful
isc_log_create was followed immediately by isc_log_[v]write[1] or
isc_log_destroy (with no intervening isc_log_usechannel or
isc_logconfig_use), and the second addresses a problem that could
occur in cleanup if isc_log_create or isc_logconfig_create failed.
2000-05-24 02:33:16 +00:00
Michael Graff
862d18c79a set ifindex to 0 for outgoing udp ipv6 datagrams. 2000-05-23 02:51:39 +00:00
Michael Graff
5cc49bc70c don't set permanent failure on udp sockets, even on unexpected error 2000-05-23 02:20:23 +00:00
Andreas Gustafsson
b291fec7c9 offset.h was not installed by 'make install' 2000-05-22 22:46:53 +00:00
Andreas Gustafsson
bac6f7fd14 the comments for isc_ratelimiter_create() said the
events are executed in the context of 'task'; this is no longer true
2000-05-22 19:47:43 +00:00
Andreas Gustafsson
34b26adb24 heap invariant INSIST did the wrong thing in the border case
of a heap item and its parent having identical priority
2000-05-22 19:47:01 +00:00
Andreas Gustafsson
b68f341a48 must include <isc/print.h> to use snprintf 2000-05-22 19:29:09 +00:00
Michael Graff
a330a4b008 only set permanent failure for tcp streams on sending 2000-05-22 16:56:12 +00:00
Andreas Gustafsson
e996ff2d5b print isc_time_t fields using %u, not %lu 2000-05-22 03:07:47 +00:00
Andreas Gustafsson
4c94069644 199. [bug] isc_heap_delete() sometimes violated the heap
invariant, causing timer events not to be posted
			when due.

Specifically, isc_heap_delete() moved the last element of the heap to
the vacated position and then attempted to restore the heap invariant
by calling sink_down().  This works when the last element has a lower
priority than the one being deleted, and this is often the case
because the last element tends to have a low priority.  However, it is
not guaranteed to be the lowest.  When deleting an item of a lower
priority than the last item, restoring the invariant requires a call
to float_up(), not sink_down().

isc_heap_delete_now calls either float_up() or sink_down() as needed,
and INSISTs have been added to verify that the heap invariant indeed
holds after the calls.
2000-05-22 02:53:52 +00:00
Michael Graff
24d3d0ecff fix a slight documentation bug 2000-05-20 01:30:16 +00:00
Michael Graff
46993e1d9d Merge the mlg-20000518 branch onto the mainline. Change summary:
dns_dispatch_create() no longer exists.  dns_dispatch_createtcp()
	and dns_dispatch_getudp() are the replacements.  _createtcp() takes
	a bound, connected TCP socket, while _getudp() will search for
	a sharable UDP socket, and if found, attach to it and return a
	pointer to it.  If one is not found, it will create a udp socket,
	bind it to a supplied local address, and create a new dispatcher
	around it.

	dns_dispatch_remove{request,response}() no longer take the dispatch
	as an argument.

	query-source can now be set per view.

	The dispatch manager holds onto three memory pools, one for
	allocating dispatchers from, one for events, and one for
	requests/replies.  The free list on these pools is hard-coded,
	but set to 1024.  This keeps us from having to dig into the
	isc_mem_t the pools draw from as often.

	dns_resolver_create() and dns_view_createresolver() require that
	valid dispatchers be passed in; dispatchers are no longer created
	for the caller.
2000-05-19 21:46:46 +00:00
David Lawrence
e6ce1a0ea9 use _PLATFORM_NEEDINETIN6H 2000-05-18 22:43:48 +00:00
David Lawrence
e8336c458c use HAVE_UNIXWARE_SIGWAIT 2000-05-18 22:39:24 +00:00
David Lawrence
76b4bfdf32 minor assertion check shuffling 2000-05-18 22:38:49 +00:00
Michael Sawyer
232fd751ed Require nanoseconds is valid, instead of t->nanoseconds, which is what we're
getting ready to set.
2000-05-18 18:59:38 +00:00
Brian Wellington
a375150af2 REQUIRE() checking in isc_log_doit could seg fault 2000-05-18 17:56:35 +00:00
David Lawrence
75a44b91a9 isc_time_subtract() now returns isc_result_t.
Use isc_time_secondsastimet() to set a time_t variable.

Properly skip the duplicate checking loop if the boundary time is not
successfully set (this was intended before, but coded wrongly).

Removed unused variable pid_string, after I opted to not add the
unrequested ISC_LOG_PRINTPID option half way into implementing it.
2000-05-18 17:20:15 +00:00
David Lawrence
60e412971e isc_time_add now returns an isc_result_t, ensuring proper range of the
result of the addition.
2000-05-18 17:15:11 +00:00
David Lawrence
87480bb860 Use isc_time_secondsastimet() set timespec.tv_sec (returning an
error if the seconds are out of range), and cast isc_time_nanoseconds()
to shut up the IRIX compiler.
2000-05-18 17:13:58 +00:00
David Lawrence
bc12a0c0d0 Ensure proper range of isc_time_seconds() assigning to timeval.tv_sec,
and cast isc_time_nanoseconds to shut up the IRIX compiler.
2000-05-18 17:12:14 +00:00
David Lawrence
6fa1cb5754 189. [func] isc_time_secondsastimet(), a new function, will ensure
that the number of seconds in an isc_time_t does not
                        exceed the range of a time_t, or return ISC_R_RANGE.
                        Similarly, isc_time_now(), isc_time_nowplusinterval(),
                        isc_time_add() and isc_time_subtract() now check the
                        range for overflow/underflow.  In the case of
                        isc_time_subtract, this changed a calling requirement
                        (ie, something that could generate an assertion)
                        into merely a condition that returns an error result.
                        isc_time_add() and isc_time_subtract() were void-
                        valued before but now return isc_result_t.

The seconds member isc_time_t on Unix platforms was changed from time_t
to unsigned int.

unix/time.c now uses macros for nanoseconds per second, nanoseconds per
microsecond and microseconds per second to make sure that the right
number of zeros appears each place the constant is used.

unix/time.c functions which take initialized isc_(interval|time)_t arguments
INSIST() that the nanoseconds value is less than one full second.

unix/time.c's isc_time_microdiff was broken because it did multiplication and
addition with unsigned integers and attempted to set them a 64 bit int to
avoid overflow, but C's ints don't promote to 64 bits on machines that only
have 32 bit longs.  Fixed.

Added all the pertinent documentation to time.h.
2000-05-18 17:08:32 +00:00
Mark Andrews
1aae402fc3 187. [func] isc_ratelimter_enqueue() has an additional arguement
'task'.

 checkpoint zone maintence / notify work.
2000-05-18 04:43:00 +00:00
Mark Andrews
fc1feadb61 Add ISC_SOCKADDR_FORMATSIZE macro. 2000-05-17 02:20:58 +00:00
Brian Wellington
a823dfa663 sys/time.h needed for struct timeval 2000-05-16 21:05:03 +00:00
David Lawrence
600cfa2ba4 184. [cleanup] Variables/functions which began with two leading
underscores were made to conform to the ANSI/ISO
                        standard, which says that such names are reserved.
2000-05-16 05:19:47 +00:00
David Lawrence
6d8cdbaff4 185. [bug] Fixed up handling of ISC_MEMCLUSTER_LEGACY. Several
public functions did not have an isc__ prefix, and
                        referred to functions that had previously been
                        renamed.

 184.   [cleanup]       Variables/functions which began with two leading
                        underscores were made to conform to the ANSI/ISO

function declaration and comment reformatting in accordance with coding
style document.

check_overrun conditionally compiled based on ISC_MEM_FILL and
ISC_MEM_CHECKOVERRUN to avoid compiler warnings about being defined
but not used if one of those two CPP symbols is not defined.
2000-05-16 05:17:31 +00:00
David Lawrence
a120694df8 conform variable names in isc_.*region_consume to ANSI/ISO standard 2000-05-16 03:37:40 +00:00
David Lawrence
2918b5bda6 ISC_LOG_PRINTTAG/isc_log_settag()/isc_log_gettag() added 2000-05-16 03:37:39 +00:00
David Lawrence
cb4a97bb1c added missing config.h 2000-05-16 03:00:53 +00:00
Mark Andrews
5273184ae1 Add isc_file_settime() set access and modification times. 2000-05-16 02:13:08 +00:00
David Lawrence
c5c3b17a0a added ISC_R_RANGE 2000-05-15 20:37:06 +00:00
Andreas Gustafsson
33e0be00e3 isc_sockaddr_any6() set sockaddr->length incorrectly 2000-05-15 04:47:20 +00:00
David Lawrence
02b152eb28 line 356: remark(1174): parameter "msg" was declared but never referenced
line 356: remark(1174): parameter "dev" was declared but never referenced

This is true when ISC_NET_BSD44MSGHDR is not defined.  UNUSED()s were added.

line 1580: remark(1552): variable "task" was set but never used
line 1670: remark(1552): variable "task" was set but never used

I removed the stack variable and its assignment in each case.

line 2915: remark(1552): variable "ret" was set but never used

It was apparent that the variable was meant to be the return value
of isc_socket_getsockname, so the return statement was changed to use it.

Also ...

Changed function declarations to ISC coding style.

Wrapped two lines that were wider than column 79.

Removed two UNUSED() macros for variables that were no longer unused.
2000-05-14 22:35:45 +00:00
Andreas Gustafsson
bbf6673828 use isc_sockaddr_format() instead of a static function doing
the same thing
2000-05-14 20:52:35 +00:00
Andreas Gustafsson
527ea00c17 174. [func] New public function isc_sockaddr_format(), for
formatting socket addresses in log messages.
2000-05-14 20:42:43 +00:00
David Lawrence
2467f3cafd Removed comment about some day prefixing members of ISC_EVENT_COMMON
with ev_ prefix, since that has been done.
2000-05-14 02:12:18 +00:00
David Lawrence
e52750239e Changed the CPP symbol it uses from *_HAVENETINET6* to *_NEEDNETINET6*
to better clarify what is going on with regard to the symbol.
2000-05-13 18:18:08 +00:00
Michael Graff
3ee8ba5e32 expand on why magic numbers need to be first in the structure 2000-05-11 16:18:01 +00:00
David Lawrence
d8e34837cd isc_file_{stdiofunc} -> isc_stdio_* 2000-05-11 16:14:05 +00:00
David Lawrence
0c73b546ec Moved posix_result from file.c to errno2result.[ch], for use by multiple
source files.  We may want to generalize this as part of the libisc API,
but with a better name.
2000-05-11 15:09:30 +00:00
Mark Andrews
c052487cdf 169. [func] ratelimiter can now process N events per interval. 2000-05-11 09:23:29 +00:00
Michael Graff
2fc337ec38 add isc_socket_isbound() 2000-05-11 07:39:17 +00:00
Michael Graff
6849d91cd7 mark accepted connections as connected and bound. 2000-05-11 06:35:20 +00:00
Michael Graff
8321dd2150 add ISC_R_NOTBOUND and ISC_R_NOTCONNECTED and return them where appropriate. 2000-05-11 05:43:53 +00:00
Michael Graff
f019e00452 Add (commented out) 'must be bound' checking 2000-05-10 21:17:49 +00:00
Michael Graff
2968701c3a require that magic numbers be the first item in the structure. 2000-05-10 17:45:45 +00:00
Michael Graff
86bf5e8c34 add ISC_MAGIC('a','b','c','d') to make specifying magic numbers a bit more
readable
2000-05-10 17:06:57 +00:00
Andreas Gustafsson
996f4a8bc3 164. [cleanup] Added functions isc_file_fopen(), isc_file_fclose(),
isc_file_fseek(), isc_file_fread(), isc_file_fwrite(),
                        isc_file_fflush(), isc_file_ffsync(), isc_file_remove()
                        to encapsulate nonportable usage of errno and fflush().
2000-05-09 23:19:32 +00:00
Andreas Gustafsson
6a13d6f3c6 Added result codes ISC_R_FILENOTFOUND and ISC_R_FILEEXISTS 2000-05-09 23:10:34 +00:00
David Lawrence
47b26abe77 ensure proper range for argument to ctype functions 2000-05-09 22:22:25 +00:00