Skip to content

Commit

Permalink
Fix for issue #887 (Timeouts to forward servers on BSD based system w…
Browse files Browse the repository at this point in the history
…ith ASLR)

and proabbly #516 (Stream reuse does not work on Windows)
  • Loading branch information
Philip-NLnetLabs committed Jun 9, 2023
1 parent 512236d commit 52581f8
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions services/outside_network.c
Expand Up @@ -551,8 +551,27 @@ reuse_tcp_find(struct outside_network* outnet, struct sockaddr_storage* addr,
log_assert(&key_p != ((struct reuse_tcp*)result)->pending);
}
/* not found, return null */

This comment has been minimized.

Copy link
@emaste

emaste Aug 30, 2023

This comment is now misplaced?

This comment has been minimized.

Copy link
@gthess

gthess Oct 2, 2023

Member

Indeed, fixed in 9342bf6. Thanks for noticing!


/* It is possible that we search for something before the first element
* in the tree. Replace a null pointer with the first element.
*/
if (!result) {
verbose(VERB_CLIENT, "reuse_tcp_find: taking first");
result = rbtree_first(&outnet->tcp_reuse);
}

if(!result || result == RBTREE_NULL)
return NULL;

/* It is possible that we got the previous address, but that the
* address we are looking for is in the tree. If the address we got
* is less than the address we are looking, then take the next entry.
*/
if (reuse_cmp_addrportssl(result->key, &key_p.reuse) < 0) {
verbose(VERB_CLIENT, "reuse_tcp_find: key too low");
result = rbtree_next(result);
}

verbose(VERB_CLIENT, "reuse_tcp_find check inexact match");
/* inexact match, find one of possibly several connections to the
* same destination address, with the correct port, ssl, and
Expand Down

0 comments on commit 52581f8

Please sign in to comment.