diff options
author | Andrea Shepard <andrea@torproject.org> | 2012-11-13 13:45:00 -0800 |
---|---|---|
committer | Andrea Shepard <andrea@torproject.org> | 2012-11-13 13:45:00 -0800 |
commit | 7ab3004223bd61f8ad1c573b309c63824e038528 (patch) | |
tree | b3d266e54467b75af28a3df75eb68ebaac27efc2 /src/or | |
parent | b13c6becc892d9716d8645f16b5d03bdb0b34651 (diff) | |
download | tor-7ab3004223bd61f8ad1c573b309c63824e038528.tar tor-7ab3004223bd61f8ad1c573b309c63824e038528.tar.gz |
Call channel_mark_for_close() properly in hibernate_go_dormant()
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/hibernate.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/or/hibernate.c b/src/or/hibernate.c index b33e5e216..9e54eb4b4 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -23,6 +23,8 @@ hibernating, phase 2: #define HIBERNATE_PRIVATE #include "or.h" +#include "channel.h" +#include "channeltls.h" #include "config.h" #include "connection.h" #include "connection_edge.h" @@ -846,7 +848,13 @@ hibernate_go_dormant(time_t now) if (conn->type == CONN_TYPE_AP) /* send socks failure if needed */ connection_mark_unattached_ap(TO_ENTRY_CONN(conn), END_STREAM_REASON_HIBERNATING); - else + else if (conn->type == CONN_TYPE_OR) { + if (TO_OR_CONN(conn)->chan) { + channel_mark_for_close(TLS_CHAN_TO_BASE(TO_OR_CONN(conn)->chan)); + } else { + connection_mark_for_close(conn); + } + } else connection_mark_for_close(conn); } |