|
@@ -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);
|
|
|
}
|
|
|
|