Browse Source

Re-fetch v2 rendezvous descriptor only when first try failed. Patch from karsten.

svn:r13439
Nick Mathewson 17 years ago
parent
commit
be1e577d5e
1 changed files with 4 additions and 4 deletions
  1. 4 4
      src/or/connection.c

+ 4 - 4
src/or/connection.c

@@ -477,12 +477,12 @@ connection_about_to_close_connection(connection_t *conn)
         /* It's a directory connection and connecting or fetching
         /* It's a directory connection and connecting or fetching
          * failed: forget about this router, and maybe try again. */
          * failed: forget about this router, and maybe try again. */
         connection_dir_request_failed(dir_conn);
         connection_dir_request_failed(dir_conn);
+        /* if we were trying to fetch a v2 rend desc, retry as needed */
+        if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC_V2)
+          rend_client_refetch_v2_renddesc(dir_conn->rend_query);
       }
       }
-      /* if we were trying to fetch a rend desc, retry as needed */
       if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC)
       if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC)
-        rend_client_desc_here(dir_conn->rend_query);
+        rend_client_desc_here(dir_conn->rend_query); /* give it a try */
-      if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC_V2)
-        rend_client_refetch_v2_renddesc(dir_conn->rend_query);
       break;
       break;
     case CONN_TYPE_OR:
     case CONN_TYPE_OR:
       or_conn = TO_OR_CONN(conn);
       or_conn = TO_OR_CONN(conn);