Commit Graph
30207 Commits
Author SHA1 Message Date
Evan HuntandWitold 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 HuntandWitold Kręcicki e940ff0cc1 don't use the same query source port and listening port 2019-11-05 12:54:45 +01:00
Evan HuntandWitold 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 HuntandWitold Kręcicki 7a9fc7cf13 remove unused members of ns_client 2019-11-05 12:54:45 +01:00
Evan HuntandWitold Kręcicki d8a7295bc0 correct accounting of xfrout message length 2019-11-05 12:54:45 +01:00
Evan HuntandWitold 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 HuntandWitold 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 HuntandWitold Kręcicki 5158ba5b9b Style nits 2019-11-05 12:54:45 +01:00
Evan HuntandWitold 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 HuntandWitold Kręcicki 780de22d9f rename isc_faaa_queue to isc_queue 2019-11-05 12:54:45 +01:00
Evan HuntandWitold Kręcicki f6e42f7e81 Style fixes 2019-11-05 12:54:45 +01:00
Evan HuntandWitold 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 HuntandWitold Kręcicki 5eb96c2f90 remove an extra call to isc_nmhandle_detach() 2019-11-05 12:54:45 +01:00
Evan HuntandWitold 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 HuntandWitold 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 HuntandWitold 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 HuntandWitold Kręcicki 689a37071c assign loop.data directly to support older libuv versions 2019-11-05 12:54:44 +01:00
Ondřej SurýandWitold 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ýandWitold Kręcicki 05490cc963 WIP: Add F&A Array Queue implementation 2019-11-05 12:54:44 +01:00
Ondřej SurýandWitold Kręcicki ef05325179 Add implementation of hazard pointers 2019-11-05 12:54:44 +01:00
Ondřej SurýandWitold 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ýandWitold Kręcicki 41b35d978e Update the whitespaces 2019-11-05 12:54:44 +01:00
Ondřej SurýandWitold Kręcicki 31c41735a1 Update util/copyrights 2019-11-05 12:54:44 +01:00
Ondřej SurýandWitold Kręcicki d909eef3c0 Add ISC_UNREACHABLE(); to isc_nm_send() default branch 2019-11-05 12:54:44 +01:00
Ondřej SurýandWitold Kręcicki fd42f28eda fixup: Include <isc/print.h> in new netmgr.h 2019-11-05 12:54:44 +01:00
Ondřej SurýandWitold 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 HuntandWitold 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
Witold Kręcicki 8979bc4152 DbC in dns/acl.c 2019-11-05 12:54:44 +01:00