]> git.ipfire.org Git - thirdparty/bind9.git/commit
convert ns_client and related objects to use netmgr
authorEvan Hunt <each@isc.org>
Tue, 5 Nov 2019 23:34:35 +0000 (15:34 -0800)
committerEvan Hunt <each@isc.org>
Thu, 7 Nov 2019 19:55:37 +0000 (11:55 -0800)
commit53f0b6c34d3fe01c885d8020d155061d55c19477
tree6fb1a0aa464623a86564897b18f8d1696e5af5b7
parent33bf90331b48c7378316c141e5e9acb2862dd0ac
convert ns_client and related objects to use netmgr

- ns__client_request() is now called by netmgr with an isc_nmhandle_t
  parameter. The handle can then be permanently associated with an
  ns_client object.
- The task manager is paused so that isc_task events that may be
  triggred during client processing will not fire until after the netmgr is
  finished with it. Before any asynchronous event, the client MUST
  call isc_nmhandle_ref(client->handle), to prevent the client from
  being reset and reused while waiting for an event to process. When
  the asynchronous event is complete, isc_nmhandle_unref(client->handle)
  must be called to ensure the handle can be reused later.
- reference counting of client objects is now handled in the nmhandle
  object.  when the handle references drop to zero, the client's "reset"
  callback is used to free temporary resources and reiniialize it,
  whereupon the handle (and associated client) is placed in the
  "inactive handles" queue.  when the sysstem is shutdown and the
  handles are cleaned up, the client's "put" callback is called to free
  all remaining resources.
- because client allocation is no longer handled in the same way,
  the '-T clienttest' option has now been removed and is no longer
  used by any system tests.
- the unit tests require wrapping the isc_nmhandle_unref() function;
  when LD_WRAP is supported, that is used. otherwise we link a
  libwrap.so interposer library and use that.
53 files changed:
bin/named/include/named/globals.h
bin/named/main.c
bin/named/server.c
bin/tests/system/README
bin/tests/system/additional/ns1/named.args
bin/tests/system/allow-query/ns3/named.args
bin/tests/system/delzone/ns2/named.args
bin/tests/system/dnssec/ns6/named.args
bin/tests/system/dscp/ns1/named.args
bin/tests/system/dscp/ns2/named.args
bin/tests/system/dscp/ns3/named.args
bin/tests/system/dscp/ns4/named.args
bin/tests/system/dscp/ns5/named.args
bin/tests/system/dscp/ns6/named.args
bin/tests/system/dscp/ns7/named.args
bin/tests/system/dupsigs/ns1/named.args
bin/tests/system/fetchlimit/ns3/named.args [deleted file]
bin/tests/system/legacy/ns4/named.args
bin/tests/system/legacy/ns5/named.args
bin/tests/system/legacy/ns6/named.args
bin/tests/system/legacy/ns7/named.args
bin/tests/system/logfileconfig/tests.sh
bin/tests/system/mirror/ns3/named.args
bin/tests/system/mkeys/ns2/named.args
bin/tests/system/mkeys/ns3/named.args
bin/tests/system/mkeys/ns5/named1.args
bin/tests/system/mkeys/ns5/named2.args
bin/tests/system/mkeys/ns6/named.args
bin/tests/system/nsupdate/ns5/named.args
bin/tests/system/nsupdate/ns6/named.args
bin/tests/system/resolver/ns7/named.args [deleted file]
bin/tests/system/rndc/ns6/named.args
bin/tests/system/start.pl
lib/dns/dispatch.c
lib/dns/message.c
lib/ns/client.c
lib/ns/include/ns/client.h
lib/ns/include/ns/interfacemgr.h
lib/ns/include/ns/server.h
lib/ns/interfacemgr.c
lib/ns/notify.c
lib/ns/query.c
lib/ns/tests/Makefile.in
lib/ns/tests/listenlist_test.c
lib/ns/tests/notify_test.c
lib/ns/tests/nstest.c
lib/ns/tests/query_test.c
lib/ns/tests/wrap.c [new file with mode: 0644]
lib/ns/update.c
lib/ns/win32/libns.def
lib/ns/win32/libns.vcxproj.filters
lib/ns/xfrout.c
util/copyrights