Skip to content
Snippets Groups Projects
Unverified Commit de7f9111 authored by akwizgran's avatar akwizgran
Browse files

Update Tor patch to 0.2.9.11.

parent f6cdbda5
No related branches found
No related tags found
No related merge requests found
diff --git a/src/or/control.c b/src/or/control.c
index 220e7e5..a54c8a2 100644
index c8c5062..f38ba23 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -176,6 +176,8 @@ static int handle_control_hsfetch(control_connection_t *conn, uint32_t len,
@@ -196,6 +196,8 @@ static int handle_control_hsfetch(control_connection_t *conn, uint32_t len,
const char *body);
static int handle_control_hspost(control_connection_t *conn, uint32_t len,
const char *body);
......@@ -11,10 +11,10 @@ index 220e7e5..a54c8a2 100644
static int handle_control_add_onion(control_connection_t *conn, uint32_t len,
const char *body);
static int handle_control_del_onion(control_connection_t *conn, uint32_t len,
@@ -3725,6 +3727,33 @@ handle_control_hspost(control_connection_t *conn,
@@ -4246,6 +4248,33 @@ handle_control_hspost(control_connection_t *conn,
return 0;
}
+/** Called when we get an HSFORGET command: parse the hidden service's onion
+ * address and purge any cached state related to the service. */
+static int
......@@ -45,7 +45,7 @@ index 220e7e5..a54c8a2 100644
/** Called when we get a ADD_ONION command; parse the body, and set up
* the new ephemeral Onion Service. */
static int
@@ -4396,6 +4425,9 @@ connection_control_process_inbuf(control_connection_t *conn)
@@ -5065,6 +5094,9 @@ connection_control_process_inbuf(control_connection_t *conn)
} else if (!strcasecmp(conn->incoming_cmd, "+HSPOST")) {
if (handle_control_hspost(conn, cmd_data_len, args))
return -1;
......@@ -56,13 +56,13 @@ index 220e7e5..a54c8a2 100644
int ret = handle_control_add_onion(conn, cmd_data_len, args);
memwipe(args, 0, cmd_data_len); /* Scrub the private key. */
diff --git a/src/or/rendcache.c b/src/or/rendcache.c
index d4bdd68..b9d79b8 100644
index aa69d73..473a6a4 100644
--- a/src/or/rendcache.c
+++ b/src/or/rendcache.c
@@ -535,6 +535,34 @@ rend_cache_lookup_entry(const char *query, int version, rend_cache_entry_t **e)
@@ -587,6 +587,34 @@ rend_cache_lookup_v2_desc_as_service(const char *query, rend_cache_entry_t **e)
return ret;
}
+/** Remove any cached descriptors for <b>service_id</b>. */
+void
+rend_cache_remove_entry(const char *service_id)
......@@ -95,25 +95,25 @@ index d4bdd68..b9d79b8 100644
* copy the pointer to it to *<b>desc</b>. Return 1 on success, 0 on
* well-formed-but-not-found, and -1 on failure.
diff --git a/src/or/rendcache.h b/src/or/rendcache.h
index 0512058..2c8ebfd 100644
index 270b614..69d1b1b 100644
--- a/src/or/rendcache.h
+++ b/src/or/rendcache.h
@@ -56,6 +56,7 @@ void rend_cache_purge(void);
@@ -61,6 +61,7 @@ void rend_cache_purge(void);
void rend_cache_free_all(void);
int rend_cache_lookup_entry(const char *query, int version,
rend_cache_entry_t **entry_out);
+void rend_cache_remove_entry(const char *service_id);
int rend_cache_lookup_v2_desc_as_service(const char *query,
rend_cache_entry_t **entry_out);
int rend_cache_lookup_v2_desc_as_dir(const char *query, const char **desc);
/** Return value from rend_cache_store_v2_desc_as_{dir,client}. */
typedef enum {
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index a39e518..909e47f 100644
index a93bc94..f311e1f 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -32,6 +32,9 @@ static extend_info_t *rend_client_get_random_intro_impl(
const rend_cache_entry_t *rend_query,
const int strict, const int warnings);
+static void purge_hid_serv_from_last_hid_serv_requests(
+ const char *onion_address);
+
......@@ -123,7 +123,7 @@ index a39e518..909e47f 100644
@@ -43,6 +46,15 @@ rend_client_purge_state(void)
rend_client_purge_last_hid_serv_requests();
}
+/** Purge all cached state relating to the given hidden service. */
+void
+rend_client_purge_hidden_service(const char *onion_address)
......@@ -137,14 +137,17 @@ index a39e518..909e47f 100644
* send the introduction request. */
void
diff --git a/src/or/rendclient.h b/src/or/rendclient.h
index 124433e..b27d2db 100644
index b8f8c2f..b1da48c 100644
--- a/src/or/rendclient.h
+++ b/src/or/rendclient.h
@@ -15,6 +15,7 @@
#include "rendcache.h"
void rend_client_purge_state(void);
+void rend_client_purge_hidden_service(const char *onion_address);
void rend_client_introcirc_has_opened(origin_circuit_t *circ);
void rend_client_rendcirc_has_opened(origin_circuit_t *circ);
--
2.9.3
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment