mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 22:58:50 +01:00
Add a DROPOWNERSHIP controller command to undo TAKEOWNERSHIP.
Closes ticket 28843.
This commit is contained in:
parent
f8dac5c900
commit
4bc3983f64
2 changed files with 26 additions and 0 deletions
3
changes/ticket28843
Normal file
3
changes/ticket28843
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
o Minor features (controller):
|
||||||
|
- Add a DROPOWNERSHIP command to undo the effects of TAKEOWNERSHIP.
|
||||||
|
Implements ticket 28843.
|
|
@ -1741,6 +1741,26 @@ handle_control_takeownership(control_connection_t *conn, uint32_t len,
|
||||||
return 0;
|
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
|
/** Return true iff <b>addr</b> is unusable as a mapaddress target because of
|
||||||
* containing funny characters. */
|
* containing funny characters. */
|
||||||
static int
|
static int
|
||||||
|
@ -5548,6 +5568,9 @@ connection_control_process_inbuf(control_connection_t *conn)
|
||||||
} else if (!strcasecmp(conn->incoming_cmd, "TAKEOWNERSHIP")) {
|
} else if (!strcasecmp(conn->incoming_cmd, "TAKEOWNERSHIP")) {
|
||||||
if (handle_control_takeownership(conn, cmd_data_len, args))
|
if (handle_control_takeownership(conn, cmd_data_len, args))
|
||||||
return -1;
|
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")) {
|
} else if (!strcasecmp(conn->incoming_cmd, "MAPADDRESS")) {
|
||||||
if (handle_control_mapaddress(conn, cmd_data_len, args))
|
if (handle_control_mapaddress(conn, cmd_data_len, args))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Add table
Reference in a new issue