bind9/lib
Evan Hunt 6ea7d59ad2 dispatch: Clean up connect and recv callbacks
- disp_connected() has been split into two functions,
  udp_connected() (which takes 'resp' as an argument) and
  tcp_connected() (which takes 'disp', and calls the connect callbacks
  for all pending resps).

- In dns_dispatch_connect(), if a connection is already open, we need to
  detach the dispentry immediately because we won't be running
  tcp_connected().

- dns_disptach_cancel() also now calls the connect callbacks for pending
  TCP responses, and the response callbacks for open TCP connections
  waiting on read.

- If udp_connected() runs after dns_dispatch_cancel() has been called,
  ensure that the caller's connect callback is run.

- If a UDP connection fails with EADDRINUSE, we try again up to five
  times with a different local port number before giving up.

- If a TCP connection is canceled while still pending connection, the
  connect timeout may still fire. we attach the dispatch before
  connecting to ensure that it won't be detached too soon in this case.

- The dispentry is no longer removed from the pending list when
  deactivating, so that the connect callback can still be run if
  dns_dispatch_removeresponse() was run while the connecting was
  pending.

- Rewrote dns_dispatch_gettcp() to avoid a data race.

- startrecv() and dispatch_getnext() can be called with a NULL resp when
  using TCP.

- Refactored udp_recv() and tcp_recv() and added result logging.

- EOF is now treated the same as CANCELED in response callbacks.

- ISC_R_SHUTTINGDOWN is sent to the reponse callbacks for all resps if
  tcp_recv() is triggered by a netmgr shutdown.  (response callbacks
  are *not* sent by udp_recv() in this case.)
2021-10-02 11:39:56 -07:00
..
bind9 Add "ciphers" options to the "tls" clause 2021-10-01 15:50:43 +03:00
dns dispatch: Clean up connect and recv callbacks 2021-10-02 11:39:56 -07:00
irs Check parsed resconf values 2021-08-12 09:52:52 -07:00
isc dispatch: Refactor to eliminate dns_dispatchevent 2021-10-02 11:39:56 -07:00
isccc Remove native PKCS#11 support 2021-09-09 15:35:39 +02:00
isccfg Add "session-tickets" options to the "tls" clause 2021-10-01 15:50:43 +03:00
ns dispatch: Clean up connect and recv callbacks 2021-10-02 11:39:56 -07:00
.gitignore The isc/platform.h header has been completely removed 2021-07-06 05:33:48 +00:00
Makefile.am move samples/resolve.c to bin/tests/system 2021-04-16 14:29:43 +02:00
unit-test-driver.sh.in Enforce a run time limit on unit test binaries 2021-04-07 11:41:45 +02:00