From: Mike Perry Date: Thu, 8 Jun 2023 22:44:26 +0000 (+0000) Subject: Bug 40801: Send LINKED_ACK before attaching streams X-Git-Tag: tor-0.4.8.2-alpha~15^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=da50d21c42b43ede01bad48d205db67e6eed8bd2;p=thirdparty%2Ftor.git Bug 40801: Send LINKED_ACK before attaching streams Otherwise, the BEGIN cell arrives at the exit before it has an RTT, and then it does not know which circuit to prefer in response. --- diff --git a/src/core/or/conflux_pool.c b/src/core/or/conflux_pool.c index 7e38e151a8..c8018f45e2 100644 --- a/src/core/or/conflux_pool.c +++ b/src/core/or/conflux_pool.c @@ -797,11 +797,6 @@ try_finalize_set(unlinked_circuits_t *unlinked) unlinked->cfx = NULL; unlinked_free(unlinked); - /* Now that this set is ready to use, try any pending streams again. */ - if (is_client) { - connection_ap_attach_pending(1); - } - log_info(LD_CIRC, "Successfully linked a conflux %s set which is now usable.", is_client ? "client" : "relay"); @@ -1964,6 +1959,12 @@ conflux_process_linked(circuit_t *circ, crypt_path_t *layer_hint, goto end; } + /* If this set is ready to use with a valid conflux set, try any pending + * streams again. */ + if (circ->conflux) { + connection_ap_attach_pending(1); + } + goto end; close: