]> git.ipfire.org Git - thirdparty/bind9.git/commit
refactor tcpquota and pipeline refs; allow special-case overrun in isc_quota
authorEvan Hunt <each@isc.org>
Fri, 5 Apr 2019 23:26:05 +0000 (16:26 -0700)
committerOndřej Surý <ondrej@sury.org>
Thu, 25 Apr 2019 13:04:26 +0000 (15:04 +0200)
commitc47ccf630f147378568b33e8fdb7b754f228c346
tree7b832243e7de4f595002a05886500551c429381e
parent2ab8a085b3c666f28f1f9229bd6ecb59915b26c3
refactor tcpquota and pipeline refs; allow special-case overrun in isc_quota

- if the TCP quota has been exceeded but there are no clients listening
  for new connections on the interface, we can now force attachment to the
  quota using isc_quota_force(), instead of carrying on with the quota not
  attached.
- the TCP client quota is now referenced via a reference-counted
  'ns_tcpconn' object, one of which is created whenever a client begins
  listening for new connections, and attached to by members of that
  client's pipeline group. when the last reference to the tcpconn
  object is detached, it is freed and the TCP quota slot is released.
- reduce code duplication by adding mark_tcp_active() function.
- convert counters to atomic.

(cherry picked from commit 7e8222378ca24f1302a0c1c638565050ab04681b)
(cherry picked from commit 4939451275722bfda490ea86ca13e84f6bc71e46)
(cherry picked from commit 13f7c918b8720d890408f678bd73c20e634539d9)
bin/named/client.c
bin/named/include/named/client.h
bin/named/include/named/interfacemgr.h
bin/named/interfacemgr.c
lib/isc/include/isc/quota.h
lib/isc/quota.c
lib/isc/win32/libisc.def.in