Evan Hunt and Witold Kręcicki
99689ba839
further ns_client cleanup
...
- remove unnecessary client->newstate
- clarify purpose of client->next by renaming to client->cleanup
2019-11-05 12:54:45 +01:00
Witold Kręcicki
09a3650ef2
netmgr: don't try to send to a closed tcpdns socket
2019-11-05 12:54:45 +01:00
Witold Kręcicki
6c239005ad
netmgr: rename all 'socket' to 'sock', to avoid conflict with socket()
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
b8747be85c
fix incorrect initialization of the ns_interface object
...
this had caused a crash on shutdown in some cases.
2019-11-05 12:54:45 +01:00
Witold Kręcicki
6938bca291
Address compilation errors - gcc overzealousness with empty initializers (C99 declares that those should be filled as static initializers), one uninitialized value
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
f5462083e7
experiment: attach to nmhandle during zerottl refetch
2019-11-05 12:54:45 +01:00
Witold Kręcicki
0246b46f06
netmgr test: mutex (and not atomics) based astack
2019-11-05 12:54:45 +01:00
Witold Kręcicki
54d420f391
netmgr:
...
- clean up isc_nmevent structures - make generic types and just typedef to them
- fix atomic clang warnings in astack
- add pause/resume read for TCP
- add sequential (not-pipelining) support for TCPDNS
- keep peer address in the socket for TCP connections, it's constant for a socket
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
7a9fc7cf13
remove unused members of ns_client
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
d8a7295bc0
correct accounting of xfrout message length
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
22795df7e5
reattach the nmhandle to the client when running a prefetch
...
this delays the destruction of the client object until after the
prefetch is finished.
also added some missing CTRACE logging in query.c, in the process of
diagnosing this error.
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
9941edd286
add missing calls to isc_task_unpause()
...
also more style fixes
2019-11-05 12:54:45 +01:00
Witold Kręcicki
ff2c657f6e
netmgr:
...
- choose udp thread properly
- socket shutdown fixes
2019-11-05 12:54:45 +01:00
Witold Kręcicki
c52e0113f6
netmgr: process incomplete TCP packets correctly
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
5158ba5b9b
Style nits
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
6d7934d6f5
use isc_mem_get() instead of malloc()
...
the advantage of this is it allows the use of memory context
accounting, but it will likely have performance consequences.
XXX: we need to find a way to do a TCPDNS send without having to allocate
and copy the region that's to be sent.
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
780de22d9f
rename isc_faaa_queue to isc_queue
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
f6e42f7e81
Style fixes
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
48b4576318
remove the clienmgr->inactive queue, and the ISC_QUEUE data structure
2019-11-05 12:54:45 +01:00
Witold Kręcicki
f393756c70
netmgr experiment: constant-sized stack for handle/uvreq reuse
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
5eb96c2f90
remove an extra call to isc_nmhandle_detach()
2019-11-05 12:54:45 +01:00
Evan Hunt and Witold Kręcicki
e91e8f0e2a
Style fixes
2019-11-05 12:54:45 +01:00
Witold Kręcicki
2ab3e753a2
netmgr: Verify that we're not going below 0 with reference counter
2019-11-05 12:54:44 +01:00
Witold Kręcicki
356c73d2da
Free all extra data in ns_client_t in client_put_cb
2019-11-05 12:54:44 +01:00
Witold Kręcicki
2324d5c569
Fix isc_nm_pause - it was counting paused workers incorrectly
2019-11-05 12:54:44 +01:00
Evan Hunt and Witold Kręcicki
97c11c43b9
fix reference counting in ns_client and ns_clientmgr
...
- add reference counters to manager; all client objects attach and
detach from the manager
- ensure that when a client object is detached, if references have gone
to zero, the associated nmhandle object is detached. this should
trigger the freeing of both the nmhandle object and the client object
2019-11-05 12:54:44 +01:00
Evan Hunt and Witold Kręcicki
c0cd4c1d92
begin cleanup of ns_client
...
- as client objects are now allocated along with network manager clients
and will be accounted for by the network manager, there's no longer a
need to call exit_check(). its functions are now replaced by the
nmhandle reset and put callbacks.
- there is no need to keep a 'clients' list in ns_clientmgr()
- (however, TODO, the client manager should now be reference counted)
- added some logging to show when clients are allocated, reset, or freed
- ns_client_next() has no remaining function except to log the reason
for a failure. its name has therefore been changed to ns_client_drop().
2019-11-05 12:54:44 +01:00
Evan Hunt and Witold Kręcicki
689a37071c
assign loop.data directly to support older libuv versions
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
ac5ddd3d1f
- Some style fixes
...
- Move typedefs to isc/types.h
2019-11-05 12:54:44 +01:00
Witold Kręcicki
ce2b3fb599
hp: Can't use const atomics
2019-11-05 12:54:44 +01:00
Witold Kręcicki
95456dbd30
netmgr: use uv_handle_t->data and uv_req_t->data directly to avoid uv_{handle,req}_{get,set}_data() that was introduced only in uv 1.19.0
2019-11-05 12:54:44 +01:00
Witold Kręcicki
351dab3808
Fix rebase error in lib/ns/client.c
2019-11-05 12:54:44 +01:00
Witold Kręcicki
8b92d20559
netmgr: use portable faaa_queue instead of ck_fifo for event queue.
...
netmgr: use portable hpstack instead of ck_stack for unused objects cache.
2019-11-05 12:54:44 +01:00
Witold Kręcicki
8781de6782
FAAA Queue fixes, select proper threads in hp directly
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
05490cc963
WIP: Add F&A Array Queue implementation
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
ef05325179
Add implementation of hazard pointers
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
d25a84906f
Cleanup the unneeded includes from netmgr
2019-11-05 12:54:44 +01:00
Witold Kręcicki
353d38caf1
Use a per-client task
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
41b35d978e
Update the whitespaces
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
d909eef3c0
Add ISC_UNREACHABLE(); to isc_nm_send() default branch
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
fd42f28eda
fixup: Include <isc/print.h> in new netmgr.h
2019-11-05 12:54:44 +01:00
Ondřej Surý and Witold Kręcicki
4b4566915c
Add new function prototypes for win32 def file
2019-11-05 12:54:44 +01:00
Witold Kręcicki
30a39361a9
netmgr: checkpoint: sanitize tcphandle handling, it was wrong
2019-11-05 12:54:44 +01:00
Witold Kręcicki
737cc141b6
netmgr: checkpoint: isc_task_pause/unpause - we want to pause client->task when we're processing it outside taskmgr (directly from network thread)
2019-11-05 12:54:44 +01:00
Witold Kręcicki
9b4aab53b3
netmgr: proper closing of TCP/TCPDNS connections, TCP quota support
2019-11-05 12:54:44 +01:00
Evan Hunt and Witold Kręcicki
7a64457c43
fixup: simplify a complex boolean expression; fix style nits
2019-11-05 12:54:44 +01:00
Witold Kręcicki
5ad83a4486
netmgr: stop DNS listening, pt 2
2019-11-05 12:54:44 +01:00
Witold Kręcicki
841cd63737
netmgr: stop DNS listening, pt 1
2019-11-05 12:54:44 +01:00
Witold Kręcicki
907f983540
netmgr: pause/resume netmgr when going exclusive
2019-11-05 12:54:44 +01:00
Witold Kręcicki
fa23c42b5b
netmgr: isc_nm_pause/resume implementations - holds all processing
2019-11-05 12:54:44 +01:00