Browse Source

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.
Marcus Griep 15 years ago
parent
commit
d308738919
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/or/control.c

+ 6 - 1
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));