- Catch and report a few more bootstrapping failure cases when Tor
fails to establish a TCP connection. Cleanup on 0.2.1.x.
- When fetching v0 and v2 rendezvous service descriptors in parallel,
- do not fail the whole hidden service request only because the v0
- descriptor fetch request fails; the v2 request might still succeed.
- The other way round, when the last v2 request fails and no v0 request
- is going on, do fail the hidden service request. Fixes bug 814.
- Bugfix on 0.2.0.10-alpha.
+ we were failing the whole hidden service request when the v0
+ descriptor fetch fails, even if the v2 fetch is still pending and
+ might succeed. Similarly, if the last v2 fetch fails, we were
+ failing the whole hidden service request even if a v0 fetch is
+ still pending. Fixes bug 814. Bugfix on 0.2.0.10-alpha.
o Minor features:
- Allow ports 465 and 587 in the default exit policy again. We had
- Refactor unit testing logic so that dmalloc can be used sensibly with
unit tests to check for memory leaks.
+
Changes in version 0.2.0.31 - 2008-09-03
Tor 0.2.0.31 addresses two potential anonymity issues, starts to fix
a big bug we're seeing where in rare cases traffic from one Tor stream
* descriptors; if the response is empty or the descriptor is
* unusable, close pending connections (unless a v2 request is
* still in progress). */
- rend_client_desc_here(dir_conn->rend_query, 0);
+ rend_client_desc_trynow(dir_conn->rend_query, 0);
}
/* 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
} else {
/* success. notify pending connections about this. */
conn->_base.purpose = DIR_PURPOSE_HAS_FETCHED_RENDDESC;
- rend_client_desc_here(conn->rend_query, -1);
+ rend_client_desc_trynow(conn->rend_query, -1);
}
break;
case 404:
log_info(LD_REND, "Successfully fetched v2 rendezvous "
"descriptor.");
conn->_base.purpose = DIR_PURPOSE_HAS_FETCHED_RENDDESC;
- rend_client_desc_here(conn->rend_query, -1);
+ rend_client_desc_trynow(conn->rend_query, -1);
break;
}
break;
size_t request_len);
int rend_client_receive_rendezvous(origin_circuit_t *circ, const char *request,
size_t request_len);
-void rend_client_desc_here(const char *query, int rend_version);
+void rend_client_desc_trynow(const char *query, int rend_version);
extend_info_t *rend_client_get_random_intro(const char *query);
"service directories to fetch descriptors, because "
"we already tried them all unsuccessfully.");
/* Close pending connections (unless a v0 request is still going on). */
- rend_client_desc_here(query, 2);
+ rend_client_desc_trynow(query, 2);
return;
}
* <b>rend_version</b>.
*/
void
-rend_client_desc_here(const char *query, int rend_version)
+rend_client_desc_trynow(const char *query, int rend_version)
{
edge_connection_t *conn;
rend_cache_entry_t *entry;