From a9464993dd5be40ee3e37cb4701c687c300e576c Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Thu, 1 Jun 2017 16:24:24 +0200 Subject: [PATCH] bugfix #286 reschedule reused listening addresses --- src/server.c | 5 +++-- .../275-server-capabilities.c | 2 +- .../275-server-capabilities.test | 8 ++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/server.c b/src/server.c index ef167179..05267b60 100644 --- a/src/server.c +++ b/src/server.c @@ -995,15 +995,16 @@ getdns_return_t getdns_context_set_listen_addresses( connection *conn; loop->vmt->clear(loop, &l->to_replace->event); - (void) memset(&l->to_replace->event, 0, - sizeof(getdns_eventloop_event)); l->fd = l->to_replace->fd; l->event = l->to_replace->event; + l->event.userarg = l; l->connections = l->to_replace->connections; for (conn = l->connections; conn; conn = conn->next) conn->l = l; + (void) memset(&l->to_replace->event, 0, + sizeof(getdns_eventloop_event)); l->to_replace->connections = NULL; l->to_replace->fd = -1; diff --git a/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.c b/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.c index bffd95a6..91756bf6 100644 --- a/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.c +++ b/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.c @@ -119,8 +119,8 @@ int main() context, listeners, NULL, handler))) ; /* pass */ - fprintf(stdout, "%d\n", (int)port2); fprintf(stdout, "%d\n", (int)port1); + fprintf(stdout, "%d\n", (int)port2); fflush(stdout); getdns_context_run(context); } diff --git a/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.test b/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.test index 428591fd..9935de91 100644 --- a/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.test +++ b/src/test/tpkg/275-server-capabilities.tpkg/275-server-capabilities.test @@ -13,6 +13,8 @@ make && "${BUILDDIR}/build-stub-only/libtool" exec valgrind -v --log-file=valgri ${GETDNS_STUB_QUERY} -s @127.0.0.1:$PORT TXT test +return_call_reporting 2>&1 > tcp_out + ${GETDNS_STUB_QUERY} -s -U @127.0.0.1:$PORT2 TXT test +return_call_reporting 2>&1 > udp_out + ${GETDNS_STUB_QUERY} -s -q @127.0.0.1:$PORT TXT quit. ) if grep -q 'definitely lost: [^0]' valgrind.log @@ -33,6 +35,12 @@ then echo 'error: Query was not over TCP!' exit 1 +elif ! grep -q '"transport": GETDNS_TRANSPORT_UDP' udp_out +then + cat udp_out + echo 'error: Query was not over UDP!' + exit 1 + elif ! grep -q '"Some answer"' tcp_out then cat tcp_out