Witold Kręcicki
c1a4f0e66a
Use multiple worker queues (using isc_task_sendto()) in unix socket code
2018-11-15 08:21:17 +00:00
Witold Kręcicki
b2b210d6d9
Make watching/unwatching sockets saner.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
d652551e86
Use the newly accepted FD in TCP code.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
88edf8fe4d
Use isc_refcount_t in socket reference counting.
2018-11-15 08:21:17 +00:00
Witold Krecicki
7223790380
Multiple network event loop threads support for Solarises /dev/poll.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
9c926a5d9b
Mangle fdlocks a bit.
...
Mutexes are slower if they're in the same cache line. Since
fd's come in herds, and usually our listen sockets will have nearby
fd numbers, we mangle fdlocks so that the locks are further away.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
58d75d9d8d
Fix a race between socket closing and incoming event.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
f94f4bc1f4
Set network threads CPU affintity.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
bd024eee57
Add runtime detection of SO_REUSEPORT, use it instead of dup() if available.
2018-11-15 08:21:17 +00:00
Witold Krecicki
6feb688f69
Use multiple network event loop threads with separate data structures.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
cbc1b12311
Do IO after event directly in the network thread, don't queue an event in a separate task.
2018-11-15 08:21:17 +00:00
Witold Kręcicki
778ab8158a
Remove fdwatch sockets, those are not used anywhere.
2018-11-15 08:21:17 +00:00
Ondřej Surý
23fff6c569
Hint the compiler with ISC_UNREACHABLE(); that code after INSIST(0); cannot be reached
2018-11-08 12:22:17 +07:00
Ondřej Surý
b2b43fd235
Turn (int & flag) into (int & flag) != 0 when implicitly typed to bool
2018-11-08 12:21:53 +07:00
Witold Kręcicki
54b9690a4e
Remove vector socket functions from Unix socket code and library headers
...
Remove the following functions in order to simplify socket code:
- isc_socket_recvv()
- isc_socket_sendtov()
- isc_socket_sendtov2()
- isc_socket_sendv()
2018-10-31 12:12:53 +01:00
Mark Andrews
561b780ba0
Only set IPV6_USE_MIN_MTU on IPv6.
2018-10-29 16:49:33 +11:00
Witold Kręcicki
38a127c35b
Remove layering from isc_task, isc_app, isc_socket, isc_timer, isc_mem
2018-10-18 09:19:12 +00:00
Witold Kręcicki
cdbac34cba
Get rid of isc_bind9 conditional
2018-10-18 09:19:12 +00:00
Mark Andrews
81b133d963
avoid macro name collision with system defined macro
2018-09-10 09:18:17 +10:00
Ondřej Surý
2750799132
Assume socklen_t is always available on all supported platforms (except on Windows where it is typedefed to int32_t)
2018-09-07 12:17:40 +02:00
Ondřej Surý
f1d3055d7b
Replace platform ISC_PLATFORM_HAVETFO with config ENABLE_TCP_FASTOPEN
2018-09-07 12:17:30 +02:00
Ondřej Surý
092edb5b44
Replace platform ISC_PLATFORM_HAVEDEVPOLL with check for devpoll.h headers
2018-09-07 12:17:30 +02:00
Ondřej Surý
5d65392d18
Replace platform ISC_PLATFORM_HAVEEPOLL with config HAVE_EPOLL_CREATE1
2018-09-07 12:17:30 +02:00
Ondřej Surý
68f473a25e
Replace platform ISC_PLATFORM_HAVEKQUEUE with config HAVE_KQUEUE
2018-09-07 12:17:30 +02:00
Witold Kręcicki
17212cf996
Align CMSG buffers to a void* boundary, fixes crash on architectures with strict alignment
...
CHANGES entry
2018-09-07 09:34:32 +02:00
Witold Krecicki
d932ec871c
Silence some warnings and errors
2018-08-31 13:48:26 -07:00
Evan Hunt
1656152d76
Ensure that POSIX strerror_r variant is use even when _GNU_SOURCE is enabled by default
2018-08-29 13:31:28 +02:00
Witold Kręcicki
103b60e0bc
Pre-merge nits
2018-08-28 20:25:36 +02:00
Evan Hunt
cddb699690
style nits
2018-08-28 20:19:47 +02:00
Mukund Sivaraman
700614a0eb
Set SO_SNDBUF
2018-08-28 20:19:47 +02:00
Ondřej Surý
a11a271b28
Assume non-broken recvmsg
2018-08-28 10:31:48 +02:00
Ondřej Surý
1672935717
Use strerror_r from POSIX.1-2001 (strerror_s on Windows) instead of custom isc__strerror()
2018-08-28 10:31:48 +02:00
Ondřej Surý
e6dc08b06c
Always assume BSD4.4 msghdr version
2018-08-28 10:31:48 +02:00
Ondřej Surý
3ab9c99567
Remove support for legacy systems without in6_pktinfo
2018-08-28 10:31:48 +02:00
Ondřej Surý
7b21bbb7c1
Require IPv6 support from the OS
2018-08-28 10:31:47 +02:00
Ondřej Surý
02e349c051
Remove legacy support for HP-UX
2018-08-28 10:31:47 +02:00
Ondřej Surý
f0f71420c8
Remove legacy support for AIX
2018-08-28 10:31:47 +02:00
Witold Kręcicki
5cdb38c2c7
Remove unthreaded support
2018-08-16 17:18:52 +02:00
Ondřej Surý
ebf3083e08
Make ENOBUFS a soft error
2018-08-13 18:51:10 +02:00
Ondřej Surý
994e656977
Replace custom isc_boolean_t with C standard bool type
2018-08-08 09:37:30 +02:00
Ondřej Surý
cb6a185c69
Replace custom isc_u?intNN_t types with C99 u?intNN_t types
2018-08-08 09:37:28 +02:00
Ondřej Surý
64fe6bbaf2
Replace ISC_PRINT_QUADFORMAT with inttypes.h format constants
2018-08-08 09:36:44 +02:00
Witold Kręcicki
49f90025a0
Use completely static-sized buffers
2018-06-26 17:41:18 +02:00
Witold Kręcicki
d79be7dd5e
Fix socket cmsg buffer usage
2018-06-26 17:41:18 +02:00
Mark Andrews
6bff1768cf
ISC_SOCKEVENTATTR_TRUNC was not be set
2018-05-18 15:34:48 +10:00
Ondřej Surý
c2f42583c0
Refactor ISC_SOCKET_* defines into an isc_socket_options_t enum
2018-04-12 09:54:21 +02:00
Mark Andrews
48ca11df5f
update printf format to match type
2018-02-24 17:50:41 -08:00
Mark Andrews
a04bb76973
improve the conditional declaration and use of variable to silence cppcheck
2018-02-24 17:50:41 -08:00
Ondřej Surý
843d389661
Update license headers to not include years in copyright in all applicable files
2018-02-23 10:12:02 +01:00
Mukund Sivaraman
f96133826e
Fix various bugs reported by valgrind --tool=memcheck ( #46978 )
2018-01-13 00:33:35 +05:30