From de7f9111d3c07df4b98c4b427dd285ed11235a80 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Fri, 23 Jun 2017 15:23:05 +0100 Subject: [PATCH] Update Tor patch to 0.2.9.11. --- patches/tor.patch | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/patches/tor.patch b/patches/tor.patch index 4d4da5bb1d..1b3f8447c4 100644 --- a/patches/tor.patch +++ b/patches/tor.patch @@ -1,8 +1,8 @@ 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 + -- GitLab