]> git.ipfire.org Git - thirdparty/bind9.git/commit
netmgr: libuv-based network manager
authorWitold Kręcicki <wpk@isc.org>
Tue, 5 Nov 2019 21:55:54 +0000 (13:55 -0800)
committerEvan Hunt <each@isc.org>
Thu, 7 Nov 2019 19:55:37 +0000 (11:55 -0800)
commit70397f9d92bed595c2bb6b0825f4f8dad26d0074
tree14f150d8398908aaafac6c10a9cba2ec7cee63b9
parenta8c814cb2fa61e47af7e6e6571376e1cdec0d722
netmgr: libuv-based network manager

This is a replacement for the existing isc_socket and isc_socketmgr
implementation. It uses libuv for asynchronous network communication;
"networker" objects will be distributed across worker threads reading
incoming packets and sending them for processing.

UDP listener sockets automatically create an array of "child" sockets
so each worker can listen separately.

TCP sockets are shared amongst worker threads.

A TCPDNS socket is a wrapper around a TCP socket, which handles the
the two-byte length field at the beginning of DNS messages over TCP.

(Other wrapper socket types can be implemented in the future to handle
DNS over TLS, DNS over HTTPS, etc.)
19 files changed:
.gitlab-ci.yml
configure
configure.ac
lib/isc/Makefile.in
lib/isc/include/isc/netmgr.h [new file with mode: 0644]
lib/isc/include/isc/types.h
lib/isc/netmgr/Makefile.in [new file with mode: 0644]
lib/isc/netmgr/netmgr-int.h [new file with mode: 0644]
lib/isc/netmgr/netmgr.c [new file with mode: 0644]
lib/isc/netmgr/tcp.c [new file with mode: 0644]
lib/isc/netmgr/tcpdns.c [new file with mode: 0644]
lib/isc/netmgr/udp.c [new file with mode: 0644]
lib/isc/netmgr/uverr2result.c [new file with mode: 0644]
lib/isc/task.c
lib/isc/win32/include/isc/stdatomic.h
lib/isc/win32/libisc.def.in
lib/isc/win32/libisc.vcxproj.in
util/copyrights
win32utils/Configure