]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Attempt fix for libevent state in tcp reuse cases after a packet
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 25 Nov 2020 11:12:35 +0000 (12:12 +0100)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 25 Nov 2020 11:12:35 +0000 (12:12 +0100)
  is written.

doc/Changelog
services/outside_network.c

index ef9c8a5a79c30e9694d8192a795c8f08930323f1..c7b2a1b9ac925ee254eec2275f8affd85bd459e8 100644 (file)
@@ -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
index 0a940aaf26632b8fec276a554cea0e73f57525c7..7b5dc84593500d7705de459d4ee19ab677023020 100644 (file)
@@ -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;