]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
stream reuse, free up elements that are connected in outside network delete.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 22 Jul 2020 08:30:50 +0000 (10:30 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Wed, 22 Jul 2020 08:30:50 +0000 (10:30 +0200)
services/outside_network.c

index 425c0839ae4e26c8534125201ce96a3448f4aa22..9c9ce57fa72b71eadd760afcbe6598336382420f 100644 (file)
@@ -1509,10 +1509,18 @@ outside_network_delete(struct outside_network* outnet)
                size_t i;
                for(i=0; i<outnet->num_tcp; i++)
                        if(outnet->tcp_conns[i]) {
+                               if(!outnet->tcp_conns[i]->query->
+                                       on_tcp_waiting_list) {
+                                       /* delete waiting_tcp elements that
+                                        * the tcp conn is working on */
+                                       struct pending_tcp* pend =
+                                               (struct pending_tcp*)outnet->
+                                               tcp_conns[i]->query->
+                                               next_waiting;
+                                       decommission_pending_tcp(outnet, pend);
+                               }
                                comm_point_delete(outnet->tcp_conns[i]->c);
                                waiting_tcp_delete(outnet->tcp_conns[i]->query);
-                               /* TODO: loop over tcpwrite wait list and
-                                * delete waiting_tcp_delete them */
                                free(outnet->tcp_conns[i]);
                        }
                free(outnet->tcp_conns);