[tor-commits] [tor/master] Perform cache lookup when FetchHidServDescriptors is set

nickm at torproject.org nickm at torproject.org
Wed Jun 15 14:28:42 UTC 2016


commit c7f1b46a104b18bed017d509a8860e60f7154d67
Author: David Goulet <dgoulet at torproject.org>
Date:   Wed Jun 15 09:54:59 2016 -0400

    Perform cache lookup when FetchHidServDescriptors is set
    
    The FetchHidServDescriptors check was placed before the descriptor cache
    lookup which made the option not working because it was never using the
    cache in the first place.
    
    Fixes #18704
    
    Patched-by: twim
    Signef-off-by: David Goulet <dgoulet at torproject.org>
---
 changes/bug18704    |  5 +++++
 src/or/rendclient.c | 12 ++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/changes/bug18704 b/changes/bug18704
new file mode 100644
index 0000000..966cc2a
--- /dev/null
+++ b/changes/bug18704
@@ -0,0 +1,5 @@
+  o Major bugfixes (hidden service client)
+    - With FetchHidServDescriptors set to 0, there is no descriptor fetch
+      (which is intended) but also no descriptor cache lookup was done
+      making any Tor client not working with this option unset. Resolves
+      ticket #18704. Patch by "twim"; Bugfix on tor-0.2.0.20-rc.
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index 7e92dce..64d3673 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -895,12 +895,6 @@ rend_client_refetch_v2_renddesc(rend_data_t *rend_query)
   rend_cache_entry_t *e = NULL;
 
   tor_assert(rend_query);
-  /* Are we configured to fetch descriptors? */
-  if (!get_options()->FetchHidServDescriptors) {
-    log_warn(LD_REND, "We received an onion address for a v2 rendezvous "
-        "service descriptor, but are not fetching service descriptors.");
-    return;
-  }
   /* Before fetching, check if we already have a usable descriptor here. */
   if (rend_cache_lookup_entry(rend_query->onion_address, -1, &e) == 0 &&
       rend_client_any_intro_points_usable(e)) {
@@ -908,6 +902,12 @@ rend_client_refetch_v2_renddesc(rend_data_t *rend_query)
                       "already have a usable descriptor here. Not fetching.");
     return;
   }
+  /* Are we configured to fetch descriptors? */
+  if (!get_options()->FetchHidServDescriptors) {
+    log_warn(LD_REND, "We received an onion address for a v2 rendezvous "
+        "service descriptor, but are not fetching service descriptors.");
+    return;
+  }
   log_debug(LD_REND, "Fetching v2 rendezvous descriptor for service %s",
             safe_str_client(rend_query->onion_address));
 



More information about the tor-commits mailing list