bind9/lib/isc
Ondřej Surý eec30c33c2 Don't enable SO_REUSEADDR on outgoing UDP sockets
Currently, the outgoing UDP sockets have enabled
SO_REUSEADDR (SO_REUSEPORT on BSDs) which allows multiple UDP sockets to
bind to the same address+port.  There's one caveat though - only a
single (the last one) socket is going to receive all the incoming
traffic.  This in turn could lead to incoming DNS message matching to
invalid dns_dispatch and getting dropped.

Disable setting the SO_REUSEADDR on the outgoing UDP sockets.  This
needs to be done explicitly because `uv_udp_open()` silently enables the
option on the socket.
2024-10-02 12:15:53 +00:00
..
include Support ISO timestamps with timezone information 2024-10-01 15:09:43 +00:00
netmgr Don't enable SO_REUSEADDR on outgoing UDP sockets 2024-10-02 12:15:53 +00:00
.gitignore Add support for User Statically Defined Tracing (USDT) probes 2023-08-21 18:39:53 +02:00
ascii.c Consolidate some ASCII tables in isc/ascii and isc/hex 2022-09-12 12:18:57 +01:00
assertions.c Ad-hoc backtrace logging with isc_backtrace_log() 2023-03-29 10:47:53 +00:00
async.c Cleanup the __tsan_acquire/__tsan_release 2023-07-28 08:59:08 +02:00
async_p.h Change the isc_async API to use cds_wfcqueue internally 2023-05-12 14:16:25 +02:00
backtrace.c Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
base32.c Silence uninitialized value false positives 2023-03-08 22:40:03 +00:00
base64.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 08:33:43 +01:00
commandline.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
condition.c De-duplicate some calls to strerror_r() 2022-10-17 11:58:26 +01:00
counter.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
dir.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
entropy.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02:00
errno.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
errno2result.c Translate POSIX errorcode EROFS to ISC_R_NOPERM 2023-06-14 13:12:45 +01:00
errno2result.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
error.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
file.c Remove logging context (isc_log_t) from the public namespace 2024-08-20 12:50:39 +00:00
fips.c Define isc_fips_mode() and isc_fips_set_mode() 2023-04-03 12:05:28 +10:00
getaddresses.c Move bind9_getaddresses() to isc_getaddresses() 2023-02-21 13:12:26 +00:00
hash.c Implement incremental version of isc_hash32 and isc_hash64 2023-09-12 16:17:06 +02:00
hashmap.c Skip already rehashed positions in the old hashmap table 2024-08-14 15:19:04 +00:00
heap.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
helper.c Add isc_helper API that adds 1:1 thread for each loop 2024-09-12 12:09:45 +00:00
hex.c Consolidate some ASCII tables in isc/ascii and isc/hex 2022-09-12 12:18:57 +01:00
histo.c Check for atomic operations consistency in checklibs.sh 2024-01-03 17:04:31 +00:00
hmac.c NetBSD has added 'hmac' to libc so rename out uses of hmac 2023-12-13 22:27:38 +00:00
ht.c Fix case insensitive matching in isc_ht hash table implementation 2024-02-11 09:36:56 +01:00
httpd.c Properly attach/detach isc_httpd in case read ends earlier than send 2024-05-15 12:22:10 +02:00
interfaceiter.c Remove code to read and parse /proc/net/if_inet6 on Linux 2024-08-19 09:42:55 +00:00
iterated_hash.c Remove checks for OPENSSL_API_LEVEL define 2024-08-06 15:17:48 +02:00
jemalloc_shim.h Stop using malloc_usable_size and malloc_size 2024-08-26 15:00:44 +00:00
job.c Add tracing probes to the isc_job unit 2023-08-21 18:39:53 +02:00
job_p.h Use proper padding instead of using alignas() 2024-02-08 10:54:35 +01:00
lex.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
lib.c Use single logging context for everything 2024-08-20 12:50:39 +00:00
log.c Support ISO timestamps with timezone information 2024-10-01 15:09:43 +00:00
loop.c Revert "Double the number of threadpool threads" 2024-09-20 14:31:25 +02:00
loop_p.h Add isc_helper API that adds 1:1 thread for each loop 2024-09-12 12:09:45 +00:00
Makefile.am Add isc_helper API that adds 1:1 thread for each loop 2024-09-12 12:09:45 +00:00
managers.c remove isc_task completely 2023-02-16 18:35:32 +01:00
md.c Call ERR_clear_error on EVP_MD_fetch or EVP_##alg error 2023-09-06 00:28:56 +00:00
mem.c Call rcu_barrier() in the isc_mem_destroy() just once 2024-08-05 10:24:47 +00:00
mem_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
meminfo.c Use libuv functions to get memory available to BIND 9 2024-09-24 15:51:14 +02:00
mutex.c Fix PTHREAD_MUTEX_ADAPTIVE_NP and PTHREAD_MUTEX_ERRORCHECK_NP usage 2024-08-05 07:31:39 +00:00
mutex_p.h Use library constructor to create default mutex attr once 2022-07-13 13:19:32 +02:00
mutexblock.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
net.c Cleanup the sysctlbyname and friends configure checks and ifdefs 2024-09-21 12:38:33 +02:00
netaddr.c Update the source code formatting using clang-format-17 2023-10-17 17:47:46 +02:00
netscope.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
nonce.c Switch the CSPRNG function from RAND_bytes() to uv_random() 2022-09-26 15:13:11 +02:00
openssl_shim.c Move the dst__openssl_toresult to isc_tls unit 2024-08-08 11:59:41 +02:00
openssl_shim.h Move the dst__openssl_toresult to isc_tls unit 2024-08-08 11:59:41 +02:00
os.c Add support to read number of online CPUs on OpenBSD 2024-09-21 12:38:33 +02:00
os_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
parseint.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
picohttpparser.c Update sources to Clang 18 formatting 2024-04-23 13:11:52 +02:00
picohttpparser.h Add picohttpparser.{c.h} from https://github.com/h2o/picohttpparser 2022-10-14 11:26:54 +02:00
portset.c Use designated initializers instead of memset()/MEM_ZERO for structs 2022-10-05 16:44:05 +02:00
probes.d Add tracing probes to the isc_job unit 2023-08-21 18:39:53 +02:00
proxy2.c Add PROXYv2 header utilities 2023-12-06 15:15:24 +02:00
quota.c Clarify that cds_wfcq_dequeue_blocking() doesn't block if empty 2024-08-05 07:30:10 +00:00
radix.c Refactor isc_radix_create to return void 2023-10-13 14:44:40 +02:00
random.c Move the isc_random API initialization to the thread_local variable 2023-04-27 12:38:53 +02:00
ratelimiter.c Improve isc_refcount with initializer and implicit destroy 2023-09-24 10:08:56 +02:00
regex.c Remove do-nothing header <isc/print.h> 2023-02-15 16:44:47 +00:00
region.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
result.c Apply SKR bundle on rekey 2024-08-22 08:21:52 +02:00
rwlock.c Add tracing probes to the custom isc_rwlock implementation 2023-08-21 18:39:53 +02:00
safe.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
serial.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
signal.c Fix a crash when dig or host receive a signal 2023-03-31 09:52:54 +00:00
sockaddr.c Add helper function isc_sockaddr_disabled 2024-06-03 18:34:31 +10:00
stats.c Return the old counter value in isc_stats_increment 2024-05-10 12:08:52 +03:00
stdio.c Apply the SET_IF_NOT_NULL() semantic patch 2023-08-15 12:21:41 +02:00
stdtime.c Change the NS_PER_SEC (and friends) from enum to static const 2024-08-19 09:08:55 +00:00
string.c Explain <isc/strerr.h> a little more 2023-02-15 16:44:09 +00:00
symtab.c Apply the isc_mem_cget semantic patch 2023-08-31 22:08:35 +02:00
syslog.c Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
tests Move all the unit tests to /tests/<libname>/ 2022-05-28 14:53:02 -07:00
thread.c Cleanup the __tsan_acquire/__tsan_release 2023-07-28 08:59:08 +02:00
tid.c Make dns_dispatch bound to threads 2023-09-16 07:32:17 +02:00
time.c Support ISO timestamps with timezone information 2024-10-01 15:09:43 +00:00
timer.c use a thread-local variable to get the current running loop 2024-04-02 10:35:56 +02:00
tls.c Convert all categories and modules into static lists 2024-08-20 12:50:39 +00:00
tm.c Replace DE_CONST(k, v) with v = UNCONST(k) macro 2023-04-03 10:25:56 +00:00
url.c Update the source code formatting using clang-format-17 2023-10-17 17:47:46 +02:00
utf8.c Update sources to Clang 15 formatting 2022-11-29 08:54:34 +01:00
uv.c Add isc_mem_callocate() for safer array allocation 2023-06-27 12:38:09 +02:00
work.c Improve the Userspace RCU integration 2023-04-27 12:38:53 +02:00
xml.c Use xmlMemSetup() instead of xmlGcMemSetup() 2024-04-18 10:53:31 +02:00