From d3087389196b585ab4e0b5ee64fc36b16f071eef Mon Sep 17 00:00:00 2001 From: Marcus Griep Date: Tue, 23 Jun 2009 23:14:44 -0400 Subject: [PATCH] Ignore control port commands after a QUIT When a QUIT has been issued on a control port connection, then ignore further commands on that port. This fixes bug 1016. --- src/or/control.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/or/control.c b/src/or/control.c index 98c6aa458c..90c99fd51a 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -2888,7 +2888,12 @@ connection_control_process_inbuf(control_connection_t *conn) --data_len; } - /* Quit is always valid. */ + /* If the connection is already closing, ignore further commands */ + if (TO_CONN(conn)->marked_for_close) { + return 0; + } + + /* Otherwise, Quit is always valid. */ if (!strcasecmp(conn->incoming_cmd, "QUIT")) { connection_write_str_to_buf("250 closing connection\r\n", conn); connection_mark_for_close(TO_CONN(conn));