summaryrefslogtreecommitdiff
path: root/src/or/connection.c
diff options
context:
space:
mode:
authorYawning Angel <yawning@schwanenlied.me>2015-04-25 08:23:15 +0000
committerNick Mathewson <nickm@torproject.org>2015-04-28 10:19:08 -0400
commit915c7438a77edfaf3103b69cb494a4f069a79a0c (patch)
tree1aec80453d2aa691de928349d233a85374b4305c /src/or/connection.c
parent63a90f2df4dcd7fff862ca3849f3aa3b1dec7e84 (diff)
downloadtor-915c7438a77edfaf3103b69cb494a4f069a79a0c.tar.gz
tor-915c7438a77edfaf3103b69cb494a4f069a79a0c.zip
Add "ADD_ONION"/"DEL_ONION" and "GETINFO onions/*" to the controller.
These commands allow for the creation and management of ephemeral Onion ("Hidden") services that are either bound to the lifetime of the originating control connection, or optionally the lifetime of the tor instance. Implements #6411.
Diffstat (limited to 'src/or/connection.c')
-rw-r--r--src/or/connection.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index 5610815589..24d47ccd18 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -586,6 +586,13 @@ connection_free_(connection_t *conn)
control_connection_t *control_conn = TO_CONTROL_CONN(conn);
tor_free(control_conn->safecookie_client_hash);
tor_free(control_conn->incoming_cmd);
+ if (control_conn->ephemeral_onion_services) {
+ SMARTLIST_FOREACH(control_conn->ephemeral_onion_services, char *, cp, {
+ memwipe(cp, 0, strlen(cp));
+ tor_free(cp);
+ });
+ smartlist_free(control_conn->ephemeral_onion_services);
+ }
}
/* Probably already freed by connection_free. */