From: W.C.A. Wijngaards Date: Wed, 25 Nov 2020 11:12:35 +0000 (+0100) Subject: - Attempt fix for libevent state in tcp reuse cases after a packet X-Git-Tag: release-1.13.0rc2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d05c259458364ac7705d030d1106c4041956d908;p=thirdparty%2Funbound.git - Attempt fix for libevent state in tcp reuse cases after a packet is written. --- diff --git a/doc/Changelog b/doc/Changelog index ef9c8a5a7..c7b2a1b9a 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -5,6 +5,8 @@ the tree key identity is preserved after cleanup of the TLS state. - Remove debug commands from reuse tests. - Fix memory leak for edns client tag opcode config element. + - Attempt fix for libevent state in tcp reuse cases after a packet + is written. 24 November 2020: Wouter - Merge PR #283 : Stream reuse. This implements upstream stream diff --git a/services/outside_network.c b/services/outside_network.c index 0a940aaf2..7b5dc8459 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -1010,6 +1010,7 @@ outnet_tcp_cb(struct comm_point* c, void* arg, int error, * and we can write some more. */ pend->c->tcp_more_write_again = 1; pend->query = reuse_write_wait_pop(&pend->reuse); + comm_point_stop_listening(pend->c); outnet_tcp_take_query_setup(pend->c->fd, pend, pend->query); } else { @@ -1018,6 +1019,7 @@ outnet_tcp_cb(struct comm_point* c, void* arg, int error, pend->c->tcp_more_read_again = 0; pend->c->tcp_more_write_again = 0; pend->c->tcp_is_reading = 1; + comm_point_stop_listening(pend->c); reuse_tcp_setup_timeout(pend); } return 0;