diff options
-rw-r--r-- | src/or/connection.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/or/connection.c b/src/or/connection.c index eeaebbccd3..6f602a9e4e 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -477,12 +477,15 @@ connection_about_to_close_connection(connection_t *conn) /* It's a directory connection and connecting or fetching * failed: forget about this router, and maybe try again. */ 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 (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC) rend_client_desc_here(dir_conn->rend_query); /* give it a try */ + /* If we were trying to fetch a v2 rend desc and did not succeed, + * retry as needed. (If a fetch is successful, the connection state + * is changed to DIR_PURPOSE_HAS_FETCHED_RENDDESC to mark that + * refetching is unnecessary.) */ + if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC_V2) + rend_client_refetch_v2_renddesc(dir_conn->rend_query); break; case CONN_TYPE_OR: or_conn = TO_OR_CONN(conn); |