diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-03-15 08:52:50 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-03-15 08:52:50 -0400 |
commit | 94523bffdc3c06a9645d8e1d81fd9e3b6b3a0551 (patch) | |
tree | c8ed60faf1477e5bae6b43a02602ae08ccdc0199 /src | |
parent | feb7253df316ee1ec9c2ec3e33aac312da4d1f02 (diff) | |
parent | a3bc950e4201fe49e7a0996753a4af83d822828b (diff) | |
download | tor-94523bffdc3c06a9645d8e1d81fd9e3b6b3a0551.tar.gz tor-94523bffdc3c06a9645d8e1d81fd9e3b6b3a0551.zip |
Merge remote-tracking branch 'tor-github/pr/791' into maint-0.4.0
Diffstat (limited to 'src')
-rw-r--r-- | src/core/or/circuituse.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/or/circuituse.c b/src/core/or/circuituse.c index 2fdf6f7e8c..fd782c0cd1 100644 --- a/src/core/or/circuituse.c +++ b/src/core/or/circuituse.c @@ -1576,10 +1576,14 @@ circuit_expire_old_circuits_serverside(time_t now) or_circ = TO_OR_CIRCUIT(circ); /* If the circuit has been idle for too long, and there are no streams * on it, and it ends here, and it used a create_fast, mark it for close. + * + * Also if there is a rend_splice on it, it's a single onion service + * circuit and we should not close it. */ if (or_circ->p_chan && channel_is_client(or_circ->p_chan) && !circ->n_chan && !or_circ->n_streams && !or_circ->resolving_streams && + !or_circ->rend_splice && channel_when_last_xmit(or_circ->p_chan) <= cutoff) { log_info(LD_CIRC, "Closing circ_id %u (empty %d secs ago)", (unsigned)or_circ->p_circ_id, |