Merge branch 'ticket28843'

This commit is contained in:
Nick Mathewson 2019-01-09 09:49:25 -05:00
commit 578a93bbbc
2 changed files with 26 additions and 0 deletions

3
changes/ticket28843 Normal file
View File

@ -0,0 +1,3 @@
o Minor features (controller):
- Add a DROPOWNERSHIP command to undo the effects of TAKEOWNERSHIP.
Implements ticket 28843.

View File

@ -1743,6 +1743,26 @@ handle_control_takeownership(control_connection_t *conn, uint32_t len,
return 0;
}
/** Called when we get a DROPOWNERSHIP command. Mark this connection
* as a non-owning connection, so that we will not exit if the connection
* closes. */
static int
handle_control_dropownership(control_connection_t *conn, uint32_t len,
const char *body)
{
(void)len;
(void)body;
conn->is_owning_control_connection = 0;
log_info(LD_CONTROL, "Control connection %d has dropped ownership of this "
"Tor instance.",
(int)(conn->base_.s));
send_control_done(conn);
return 0;
}
/** Return true iff <b>addr</b> is unusable as a mapaddress target because of
* containing funny characters. */
static int
@ -5550,6 +5570,9 @@ connection_control_process_inbuf(control_connection_t *conn)
} else if (!strcasecmp(conn->incoming_cmd, "TAKEOWNERSHIP")) {
if (handle_control_takeownership(conn, cmd_data_len, args))
return -1;
} else if (!strcasecmp(conn->incoming_cmd, "DROPOWNERSHIP")) {
if (handle_control_dropownership(conn, cmd_data_len, args))
return -1;
} else if (!strcasecmp(conn->incoming_cmd, "MAPADDRESS")) {
if (handle_control_mapaddress(conn, cmd_data_len, args))
return -1;