summaryrefslogtreecommitdiff
path: root/src/or/control.c
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 /src/or/control.c
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
Diffstat (limited to 'src/or/control.c')
-rw-r--r--src/or/control.c2
1 files changed, 2 insertions, 0 deletions
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]);