Commit graph

196 commits

Author SHA1 Message Date
Evan Hunt
d26ae7fc08 [master] give threads unique names to assist debugging
4602.	[func]		Threads are now set to human-readable
			names to assist debugging, when supported by
			the OS. [RT #43234]
2017-04-21 13:59:40 -07:00
Tinderbox User
a9e8198788 update copyright notice / whitespace 2017-01-12 23:45:41 +00:00
Mark Andrews
7b9e28f1a5 4552. [bug] Named could trigger a assertion when sending notify
messages. [RT #44019]
2017-01-12 14:12:05 +11:00
Mark Andrews
0c27b3fe77 4401. [misc] Change LICENSE to MPL 2.0. 2016-06-27 14:56:38 +10:00
Evan Hunt
6c2a76b3e2 [master] copyrights, win32 definitions 2016-05-26 12:36:17 -07:00
Witold Krecicki
7a00d69909 4376. [experimental] Added support for Catalog Zones, a new method for
provisioning secondary servers in which a list of
                        zones to be served is stored in a DNS zone and can
                        be propagated to slaves via AXFR/IXFR. [RT #41581]

4375.   [func]          Add support for automatic reallocation of isc_buffer
                        to isc_buffer_put* functions. [RT #42394]
2016-05-26 21:23:19 +02:00
Evan Hunt
226dd20bbd [master] isc__taskmgr_pause() could deadlock
4271.	[test]		Unit tests could deadlock in isc__taskmgr_pause().
			[RT #41235]
2015-12-03 20:49:28 -08:00
Evan Hunt
b66b333f59 [master] dnstap
4235.	[func]		Added support in named for "dnstap", a fast method of
			capturing and logging DNS traffic, and a new command
			"dnstap-read" to read a dnstap log file.  Use
			"configure --enable-dnstap" to enable this
			feature (note that this requires libprotobuf-c
			and libfstrm). See the ARM for configuration details.

			Thanks to Robert Edmonds of Farsight Security.
			[RT #40211]
2015-10-02 12:32:42 -07:00
Francis Dupont
3759f10fc5 added print.h includes, updated copyrights 2015-05-23 14:21:51 +02:00
Tinderbox User
5e93bad21b update copyright notice / whitespace 2015-03-01 23:45:20 +00:00
Mark Andrews
bb5df338d9 4076. [bug] Named could crash on shutdown with outstanding
reload / reconfig events. [RT #38622]
2015-02-27 12:34:43 +11:00
Mark Andrews
44c6deacdd additional changes for:
3818.   [bug]           Stop lying to the optimizer that 'void *arg' is a
                        constant in isc_event_allocate.
2014-04-24 18:59:01 +10:00
Tinderbox User
cc2a515684 update copyright notice 2014-03-04 23:46:15 +00:00
Evan Hunt
b454c03196 [master] use ANSI prototypes, clean up some casts 2014-03-04 10:42:25 -08:00
Evan Hunt
7aba1a9660 [master] fix compile bug with json but no xml
3604.	[bug]		Fixed a compile-time error when building with
			JSON but not XML. [RT #33959]
2013-06-26 14:12:27 -07:00
Tinderbox User
12253af346 update copyright notice 2013-04-10 23:46:01 +00:00
Evan Hunt
b99bfa184b [master] unify internal and export libraries
3550.	[func]		Unified the internal and export versions of the
			BIND libraries, allowing external clients to use
			the same libraries as BIND. [RT #33131]
2013-04-10 13:49:57 -07:00
Tinderbox User
22dd28c5bc update copyright notice 2013-03-13 23:46:08 +00:00
Evan Hunt
feb067b25a [master] add JSON statistics channel
3524.	[func]		Added an alternate statistics channel in JSON format,
			when the server is built with the json-c library:
			http://[address]:[port]/json.  [RT #32630]
2013-03-13 14:24:50 -07:00
Mark Andrews
bbf31e6b62 More coverity fixes:
3410.   [bug]           Addressed Coverity warnings. [RT #31626]
Squashed commit of the following:

commit 6fec07bbb69ead784063052f2099674f8b52c6b3
Author: Mark Andrews <marka@isc.org>
Date:   Tue Oct 30 18:14:35 2012 +1100

    use strl{cat,cpy}

commit 19a5d3766f3dbc8a2944b21640a8226a89aae7ba
Author: Mark Andrews <marka@isc.org>
Date:   Tue Oct 30 14:38:55 2012 +1100

    address unchecked xmlTextWriter* calls
2012-11-01 10:22:11 +11:00
Mark Andrews
c965b18690 3353. [bug] Use a single task for task exclusive operations.
[RT #29872]
2012-07-19 23:00:21 +10:00
Evan Hunt
dd2a0a6d2d Merge statistics code (ATT SoW, rt24117)
This includes the following changes:

3326.	[func]		Added task list statistics: task model, worker
			threads, quantum, tasks running, tasks ready.
			[RT #27678]

3325.	[func]		Report cache statistics: memory use, number of
			nodes, number of hash buckets, hit and miss counts.
			[RT #27056]

3324.	[test]		Add better tests for ADB stats [RT #27057]

3323.	[func]		Report the number of buckets the resolver is using.
			[RT #27020]

3322.	[func]		Monitor the number of active TCP and UDP dispatches.
			[RT #27055]

3321.	[func]		Monitor the number of recursive fetches and the
			number of open sockets, and report these values in
			the statistics channel. [RT #27054]

3320.	[func]		Added support for monitoring of recursing client
			count. [RT #27009]

3319.	[func]		Added support for monitoring of ADB entry count and
			hash size. [RT #27057]
2012-05-14 10:06:05 -07:00
Tinderbox User
5fa46bc916 update copyright notice 2012-03-10 23:45:53 +00:00
Mark Andrews
28a8f5b0de set $Id$ 2012-03-08 00:21:15 +11:00
Evan Hunt
fd6a83869a silence compiler warning 2011-09-03 16:27:51 +00:00
Mark Andrews
15c8cf556d make push_readyq prototype and declaration consistant 2011-09-03 13:54:06 +00:00
Evan Hunt
ac7109d68e oops, build was failing with threads disabled 2011-09-03 00:24:27 +00:00
Automatic Updater
ca894e53b5 update copyright notice 2011-09-02 23:46:33 +00:00
Evan Hunt
8a2ab2b920 3150. [func] Improved startup and reconfiguration time by
enabling zones to load in multiple threads. [RT #25333]
2011-09-02 21:15:39 +00:00
Automatic Updater
784a904bd0 update copyright notice 2011-02-03 12:18:12 +00:00
Mark Andrews
000a8970f8 3011. [func] Change the default query timeout from 30 seconds
to 10.  Allow setting this in named.conf using the new
                        'resolver-query-timeout' option, which specifies a max
                        time in seconds.  0 means 'default' and anything longer
                        than 30 will be silently set to 30. [RT #22852]
2011-02-03 05:41:55 +00:00
Mark Andrews
7a54dadeb5 2998. [func] Add isc_task_beginexclusive and isc_task_endexclusive
to the task api. [RT #22776]
2010-12-22 05:19:02 +00:00
Mark Andrews
b286683ae8 temporally make isc__task_exiting become isc_task_exiting so that the
export version of libisc has all the symbols to link.
2010-12-04 13:25:59 +00:00
Automatic Updater
59b283de0a update copyright notice 2010-12-03 23:46:46 +00:00
Evan Hunt
e78c2b856b 2979. [bug] named could deadlock during shutdown if two
"rndc stop" commands were issued at the same
			time. [RT #22108]
2010-12-03 22:05:19 +00:00
Francis Dupont
8b78c993cb explicit engine rt20230a 2009-10-05 17:30:49 +00:00
Automatic Updater
d7201de09b update copyright notice 2009-09-02 23:48:03 +00:00
Tatuya JINMEI 神明達哉
8fec8134ea suppress compiler warnings [RT #20203] 2009-09-02 04:25:19 +00:00
Tatuya JINMEI 神明達哉
307d208450 2660. [func] Add a new set of DNS libraries for non-BIND9
applications.  See README.libdns. [RT #19369]
2009-09-01 00:22:28 +00:00
Automatic Updater
2b91038561 update copyright notice 2008-03-27 23:46:57 +00:00
Tatuya JINMEI 神明達哉
d8eb00152d always enable ISC_xxx_NAMES 2008-03-27 21:08:52 +00:00
Automatic Updater
ec5347e2c7 update copyright notice 2007-06-18 23:47:57 +00:00
Mark Andrews
cadb5c8591 #ifdef HAVE_LIBXML2 statenames 2007-02-14 02:32:30 +00:00
Mark Andrews
96ea716328 2134. [func] Additional statistics support. [RT #16666] 2007-02-13 02:49:08 +00:00
Mark Andrews
00499ae65e update copyright notice 2007-01-12 00:14:51 +00:00
Michael Graff
de4f679a17 revert changes accidently committed to mainline 2007-01-10 18:56:20 +00:00
Mark Andrews
ca48338b3d #ifdef HAVE_LIBXML2 statenames declaration 2007-01-05 07:24:51 +00:00
Mark Andrews
edf8e79280 update copyright notice 2007-01-04 00:01:13 +00:00
Michael Graff
69da4348da add some basic statistics to task.c 2007-01-03 20:23:46 +00:00
Mark Andrews
acb4f52369 update copyright notice 2006-01-04 23:50:24 +00:00
Mark Andrews
e9733bc599 1949. [func] Addition memory leakage checks. [RT #15544] 2006-01-04 03:16:47 +00:00
Mark Andrews
18d0b5e54b 1900. [port] freebsd: pthread_mutex_init can fail if it runs out
of memory. [RT #14995]
2005-07-12 01:00:20 +00:00
Mark Andrews
69fe9aaafd update copyright notice 2005-04-29 00:24:12 +00:00
Rob Austein
ab023a6556 1851. [doc] Doxygen comment markup. [RT #11398] 2005-04-27 04:57:32 +00:00
Mark Andrews
61a4d5e7d8 1742. [bug] If isc_taskmgr_create() was not able to create the
requested number of worker threads then destruction
                        of the manager would trigger an INSIST() failure.
                        [RT #12790]
2004-10-15 00:45:34 +00:00
Mark Andrews
dafcb997e3 update copyright notice 2004-03-05 05:14:21 +00:00
Mark Andrews
a03848252f 1580. [bug] Zone destuction on final detach takes a long time.
[RT #3746]

1579.   [bug]           Multiple task managers could not be created.
2004-03-04 06:56:41 +00:00
Tatuya JINMEI 神明達哉
6da7c87a77 1527. [cleanup] Reduce the number of gettimeofday() calls without
losing necessary timer granularity.

(reviewed by marka and Kurt)
2003-10-25 00:09:14 +00:00
Mark Andrews
0d993c02ba 1250. [bug] When processing events (non-threaded) only allow
the task one chance to use to use its quantum.
2002-07-19 03:39:44 +00:00
Mark Andrews
0bd9d19281 INSIST that there are no outstanding tasks when the task manager is
about to be destroyed (non-threaded).
2002-03-29 01:25:04 +00:00
Andreas Gustafsson
91cd0f93ad sizeof style 2001-11-27 01:56:32 +00:00
David Lawrence
92ef1a9b9d use ISC_MAGIC for all magic numbers, for our friends in EBCDIC land 2001-06-04 19:33:39 +00:00
Andreas Gustafsson
02940eaf0f 736. [func] New functions isc_task_{begin,end}exclusive(). 2001-02-13 04:11:44 +00:00
Andreas Gustafsson
780db05762 use the UNUSED() macro 2001-02-09 18:27:18 +00:00
Brian Wellington
744304361c actually call isc_thread_setconcurrency() 2001-02-07 21:16:12 +00:00
Andreas Gustafsson
1964de81da UNUSED() macro added in 1.79 was in the wrong place 2001-02-07 20:05:15 +00:00
Brian Wellington
499b34cea0 copyright update 2001-01-09 22:01:04 +00:00
Andreas Gustafsson
1514371d94 added UNUSED() macro 2001-01-08 19:58:10 +00:00
David Lawrence
801dceea23 Revert my last change. It was stupid, which I if I had been thinking clearly
I would have seen *before* I commited anything.  So, include isc/thread.h,
isc/mutex.h and isc/condition.h even if ISC_PLATFORM_USETHREADS is not defined.

(What caused me to bother with this at all was a problem that I resolved
a few days ago by fixing configure ... though now that I think about it,
that probably means there is some other latent problem with inconsistent
definitions that could maybe be handled better.  I'll look into it more
later, AFTER vacation.)
2000-12-26 21:45:08 +00:00
David Lawrence
bdcae3560b Only include isc/thread.h, isc/mutex.h and isc/condition.h if
ISC_PLATFORM_USETHREADS is defined.
2000-12-26 21:12:25 +00:00
David Lawrence
9cd6d409b7 first pass at using isc_msgcat_get for message strings in libisc 2000-12-06 00:30:32 +00:00
Brian Wellington
0d89afffb2 Make sure #else and #endif for ISC_PLATFORM_USETHREADS are marked as such. 2000-09-28 21:31:08 +00:00
Brian Wellington
5a842a6fc3 The non-threaded version does a better job avoiding starvation. 2000-08-30 23:47:16 +00:00
Brian Wellington
8dd5562555 #include <isc/platform.h> 2000-08-29 22:55:57 +00:00
Brian Wellington
3be0a4382d ALlow the task manager to run without threads. This doesn't handle fairness
too well.
2000-08-29 22:30:14 +00:00
Brian Wellington
a44038277a MOre calls to DESTROYLOCK 2000-08-26 01:31:56 +00:00
Andreas Gustafsson
eb5670ecd2 send task trace output to stderr, not stdout, so that
it gets buffered synchronously with logging output sent to stderr
2000-08-24 01:40:46 +00:00
David Lawrence
40f53fa8d9 Trailing whitespace trimmed. Perhaps running "perl util/spacewhack.pl in your
own CVS tree will help minimize CVS conflicts.  Maybe not.
Blame Graff for getting me to trim all trailing whitespace.
2000-08-01 01:33:37 +00:00
Brian Wellington
677045ed61 356. [cleanup] isc_task_send no longer requires event->sender to
be non-null.
2000-07-27 22:24:54 +00:00
David Lawrence
15a4474541 word wrap copyright notice at column 70 2000-07-27 09:55:03 +00:00
Andreas Gustafsson
97684ed87d new functions isc_task_getname() and isc_task_gettag(),
to be used for debugging
2000-07-26 17:11:14 +00:00
David Lawrence
9c3531d72a add RCS id string 2000-06-22 22:00:42 +00:00
David Lawrence
49dbdb0186 update_copyrights 2000-06-21 22:05:07 +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
David Lawrence
1a69a1a78c Megacommit of dozens of files.
Cleanup of redundant/useless header file inclusion.

ISC style lint, primarily for function declarations and standalone
comments -- ie, those that appear on a line without any code, which
should be written as follows:
   /*
    * This is a comment.
    */
2000-05-08 14:38:29 +00:00
David Lawrence
fc9e755ba3 <isc/task.h> does not need <isc/mem.h> or <isc/result.h>. 2000-04-28 04:26:08 +00:00
Mark Andrews
9069fc6030 Cleanup unused mctx.
memset task->name.
2000-04-18 09:05:16 +00:00
Michael Graff
e44487bfc2 convert sender, arg, action, etc. to ev_sender, ev_arg, ev_action, etc. 2000-04-17 19:22:44 +00:00
Bob Halley
64b1a68e10 isc_task_create() no longer takes an mctx.
isc_task_mem() has been eliminated.
Use memory context reference counting.
2000-04-12 01:34:16 +00:00
Bob Halley
ca41b452ed update copyrights 2000-02-03 23:08:31 +00:00
Bob Halley
a790a11730 allow tasks to be named and tagged 2000-01-25 19:25:20 +00:00
Bob Halley
e0d8e8073f If creating a task and the manager is exiting, return ISC_R_SHUTTINGDOWN 2000-01-17 23:41:33 +00:00
Michael Graff
440be4c866 move util.h to <isc/util.h> 1999-12-16 22:24:22 +00:00
Bob Halley
3bff571ab2 Simply task API:
Tasks now terminate when

		Any shutdown events have been posted

		There are no references

		The event queue is empty

	If a task has no references and the event queue
	is empty, then a shutdown will be triggered if
	it hasn't been already.

	allowdone and allowsend are gone

	sending events can no longer fail
1999-09-23 21:30:26 +00:00
Michael Graff
0d3119d4d1 Generalize ISC_R_TASKSHUTTINGDOWN to ISC_R_SHUTTINGDOWN 1999-07-14 22:15:29 +00:00
Bob Halley
ad555ae689 Shutdown now implicitly occurs if there are no references to a task
and its event queue is empty.
The DONEOK flag is forced to true if there are no references to a task,
its event queue is empty, and it is shutting down.
Add isc_task_unsend() and isc_task_unsendrange().
Add isc_task_sendanddetach().
Event tags are now void *.
Code cleanups.
Various shutdown bug fixes.
Make tracing messages prettier.
1999-07-10 01:00:05 +00:00
Bob Halley
07697f1c52 tagged event support 1999-06-15 23:18:18 +00:00
Bob Halley
0941b4e809 add isc_task_purgeevent 1999-06-12 01:10:32 +00:00
Bob Halley
3f8744a28f support for unpurgable events 1999-06-09 23:25:50 +00:00
Bob Halley
ff1a344725 add more comments and a few missing REQUIREs 1999-05-18 19:23:13 +00:00