summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2005-08-07 19:27:38 +0000
committerNick Mathewson <nickm@torproject.org>2005-08-07 19:27:38 +0000
commit4e735da5da5ffce3a86af7138ed36a46f45409a7 (patch)
treebdb296beb4f6e054187d31d072932a73ede22c32
parent5c4da9dec68a90b8c497805be8af432818447378 (diff)
downloadtor-4e735da5da5ffce3a86af7138ed36a46f45409a7.tar.gz
tor-4e735da5da5ffce3a86af7138ed36a46f45409a7.zip
Also set event_mask=0 in connection_free_all, and dont send events to marked control conns (for good measure)
svn:r4729
-rw-r--r--src/or/connection.c7
-rw-r--r--src/or/control.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index f68fd3362d..ea627620ca 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -276,6 +276,13 @@ connection_free_all(void)
connection_t **carray;
get_connection_array(&carray,&n);
+
+ /* We don't want to log any messages to controllers. */
+ for (i=0;i<n;i++)
+ if (carray[i]->type == CONN_TYPE_CONTROL)
+ carray[i]->event_mask = 0;
+ control_update_global_event_mask();
+
for (i=0;i<n;i++)
_connection_free(carray[i]);
diff --git a/src/or/control.c b/src/or/control.c
index ba65c4ebee..d15033acab 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -523,6 +523,7 @@ send_control0_event(uint16_t event, uint32_t len, const char *body)
get_connection_array(&conns, &n_conns);
for (i = 0; i < n_conns; ++i) {
if (conns[i]->type == CONN_TYPE_CONTROL &&
+ !conns[i]->marked_for_close &&
conns[i]->state == CONTROL_CONN_STATE_OPEN_V0 &&
conns[i]->event_mask & (1<<event)) {
send_control0_message(conns[i], CONTROL0_CMD_EVENT, buflen, buf);
@@ -560,6 +561,7 @@ send_control1_event(uint16_t event, const char *format, ...)
get_connection_array(&conns, &n_conns);
for (i = 0; i < n_conns; ++i) {
if (conns[i]->type == CONN_TYPE_CONTROL &&
+ !conns[i]->marked_for_close &&
conns[i]->state == CONTROL_CONN_STATE_OPEN_V1 &&
conns[i]->event_mask & (1<<event)) {
connection_write_to_buf(buf, len, conns[i]);