diff options
author | Roger Dingledine <arma@torproject.org> | 2014-09-21 20:02:12 -0400 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2014-09-21 20:02:12 -0400 |
commit | 09183dc3150000007ccc7b8fecd3b5b762a5b698 (patch) | |
tree | 85668847232a6fd247e1347b553a3b353e9eefdd /src/or/circuituse.c | |
parent | 530fac10aaef5e38327c8704d657a2e67987f102 (diff) | |
download | tor-09183dc3150000007ccc7b8fecd3b5b762a5b698.tar.gz tor-09183dc3150000007ccc7b8fecd3b5b762a5b698.zip |
clients use optimistic data when reaching hidden services
Allow clients to use optimistic data when connecting to a hidden service,
which should cut out the initial round-trip for client-side programs
including Tor Browser.
(Now that Tor 0.2.2.x is obsolete, all hidden services should support
server-side optimistic data.)
See proposal 181 for details. Implements ticket 13211.
Diffstat (limited to 'src/or/circuituse.c')
-rw-r--r-- | src/or/circuituse.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/or/circuituse.c b/src/or/circuituse.c index c1a81520e7..9ea0023568 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -2110,14 +2110,17 @@ link_apconn_to_circ(entry_connection_t *apconn, origin_circuit_t *circ, /* See if we can use optimistic data on this circuit */ if (optimistic_data_enabled() && - circ->base_.purpose == CIRCUIT_PURPOSE_C_GENERAL) + (circ->base_.purpose == CIRCUIT_PURPOSE_C_GENERAL || + circ->base_.purpose == CIRCUIT_PURPOSE_C_REND_JOINED)) apconn->may_use_optimistic_data = 1; else apconn->may_use_optimistic_data = 0; log_info(LD_APP, "Looks like completed circuit to %s %s allow " "optimistic data for connection to %s", - /* node_describe() does the right thing if exitnode is NULL */ - safe_str_client(node_describe(exitnode)), + circ->base_.purpose == CIRCUIT_PURPOSE_C_GENERAL ? + /* node_describe() does the right thing if exitnode is NULL */ + safe_str_client(node_describe(exitnode)) : + "hidden service", apconn->may_use_optimistic_data ? "does" : "doesn't", safe_str_client(apconn->socks_request->address)); } |