]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
for tcp use_free_buffer write straight away on reuse connection, if possible
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Thu, 25 Jun 2020 14:11:46 +0000 (16:11 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Thu, 25 Jun 2020 14:11:46 +0000 (16:11 +0200)
services/outside_network.c

index f76b0ed3a6c525b27aa62f7e9c9832fd2bed6ff9..a010e3323924856eba6ae3b438a17db0fbf9c044 100644 (file)
@@ -626,12 +626,18 @@ use_free_buffer(struct outside_network* outnet)
                if(reuse) {
                        log_reuse_tcp(5, "use free buffer for waiting tcp: "
                                "found reuse", reuse);
+                       comm_timer_disable(w->timer);
+                       w->next_waiting = (void*)reuse->pending;
+                       reuse_tree_by_id_insert(reuse, w);
                        if(reuse->pending->query) {
                                /* on the write wait list */
-                               comm_timer_disable(w->timer);
-                               w->next_waiting = (void*)reuse->pending;
-                               reuse_tree_by_id_insert(reuse, w);
                                reuse_write_wait_push_back(reuse, w);
+                       } else {
+                               /* write straight away */
+                               reuse->pending->query = w;
+                               outnet_tcp_take_query_setup(
+                                       reuse->pending->c->fd, reuse->pending,
+                                       w);
                        }
                } else {
                        if(!outnet_tcp_take_into_use(w)) {