diff options
author | Robert Ransom <rransom.8774@gmail.com> | 2011-05-19 16:27:51 -0700 |
---|---|---|
committer | Robert Ransom <rransom.8774@gmail.com> | 2011-05-20 08:25:42 -0700 |
commit | 338a0266101e3addecbaf5771f62a860244896b3 (patch) | |
tree | 36fd21a91c9fe1dced1dd9b3c5d0b82b2e7a3b17 | |
parent | 86aeb152cab3d0c9d5d8b301e5eb5e3afe497ea9 (diff) | |
download | tor-338a0266101e3addecbaf5771f62a860244896b3.tar.gz tor-338a0266101e3addecbaf5771f62a860244896b3.zip |
Split control connection cleanup out of connection_free
-rw-r--r-- | src/or/connection.c | 3 | ||||
-rw-r--r-- | src/or/control.c | 10 | ||||
-rw-r--r-- | src/or/control.h | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index fc2097f9a9..24ab593fef 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -479,8 +479,7 @@ connection_free(connection_t *conn) } } if (conn->type == CONN_TYPE_CONTROL) { - TO_CONTROL_CONN(conn)->event_mask = 0; - control_update_global_event_mask(); + connection_control_closed(TO_CONTROL_CONN(conn)); } connection_unregister_events(conn); _connection_free(conn); diff --git a/src/or/control.c b/src/or/control.c index 47e7081825..0ddbee99c1 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -2739,6 +2739,16 @@ connection_control_reached_eof(control_connection_t *conn) return 0; } +/** Called when <b>conn</b> is being freed. */ +void +connection_control_closed(control_connection_t *conn) +{ + tor_assert(conn); + + conn->event_mask = 0; + control_update_global_event_mask(); +} + /** Return true iff <b>cmd</b> is allowable (or at least forgivable) at this * stage of the protocol. */ static int diff --git a/src/or/control.h b/src/or/control.h index a83e3747e6..6694c96438 100644 --- a/src/or/control.h +++ b/src/or/control.h @@ -25,6 +25,8 @@ void control_adjust_event_log_severity(void); int connection_control_finished_flushing(control_connection_t *conn); int connection_control_reached_eof(control_connection_t *conn); +void connection_control_closed(control_connection_t *conn); + int connection_control_process_inbuf(control_connection_t *conn); #define EVENT_AUTHDIR_NEWDESCS 0x000D |