mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Merge branch 'tor-gitlab/mr/170'
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
o Removed features (network parameters):
|
||||
- The "optimistic data" feature is now always on; there is no longer an
|
||||
option to disable it from the torrc file or from the consensus
|
||||
directory.
|
||||
Closes part of 40139.
|
||||
- The "usecreatefast" network parameter is now removed; there is no
|
||||
longer an option for authorities to turn it off. Closes part of 40139.
|
||||
@@ -1309,15 +1309,6 @@ The following options are useful only for clients (that is, if
|
||||
Every NUM seconds consider whether to build a new circuit. (Default: 30
|
||||
seconds)
|
||||
|
||||
[[OptimisticData]] **OptimisticData** **0**|**1**|**auto**::
|
||||
When this option is set, and Tor is using an exit node that supports
|
||||
the feature, it will try optimistically to send data to the exit node
|
||||
without waiting for the exit node to report whether the connection
|
||||
succeeded. This can save a round-trip time for protocols like HTTP
|
||||
where the client talks first. If OptimisticData is set to **auto**,
|
||||
Tor will look at the UseOptimisticData parameter in the networkstatus.
|
||||
(Default: auto)
|
||||
|
||||
// These are out of order because they logically belong together
|
||||
[[PathBiasCircThreshold]] **PathBiasCircThreshold** __NUM__ +
|
||||
|
||||
|
||||
@@ -610,7 +610,7 @@ static const config_var_t option_vars_[] = {
|
||||
V(TestingAuthKeySlop, INTERVAL, "3 hours"),
|
||||
V(TestingSigningKeySlop, INTERVAL, "1 day"),
|
||||
|
||||
V(OptimisticData, AUTOBOOL, "auto"),
|
||||
OBSOLETE("OptimisticData"),
|
||||
OBSOLETE("PortForwarding"),
|
||||
OBSOLETE("PortForwardingHelper"),
|
||||
OBSOLETE("PreferTunneledDirConns"),
|
||||
|
||||
@@ -868,10 +868,6 @@ struct or_options_t {
|
||||
* once. */
|
||||
int MaxClientCircuitsPending;
|
||||
|
||||
/** If 1, we always send optimistic data when it's supported. If 0, we
|
||||
* never use it. If -1, we do what the consensus says. */
|
||||
int OptimisticData;
|
||||
|
||||
/** If 1, we accept and launch no external network connections, except on
|
||||
* control ports. */
|
||||
int DisableNetwork;
|
||||
|
||||
@@ -770,27 +770,15 @@ circuit_deliver_create_cell,(circuit_t *circ,
|
||||
return -1;
|
||||
}
|
||||
|
||||
/** Return true iff we should send a create_fast cell to start building a given
|
||||
* circuit */
|
||||
static inline int
|
||||
/** Return true iff we should send a create_fast cell to start building a
|
||||
* given circuit */
|
||||
static inline bool
|
||||
should_use_create_fast_for_circuit(origin_circuit_t *circ)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
tor_assert(circ->cpath);
|
||||
tor_assert(circ->cpath->extend_info);
|
||||
|
||||
if (!circuit_has_usable_onion_key(circ)) {
|
||||
/* We don't have ntor, and we don't have or can't use TAP,
|
||||
* so our hand is forced: only a create_fast will work. */
|
||||
return 1;
|
||||
}
|
||||
if (public_server_mode(options)) {
|
||||
/* We're a server, and we have a usable onion key. We can choose.
|
||||
* Prefer to blend our circuit into the other circuits we are
|
||||
* creating on behalf of others. */
|
||||
return 0;
|
||||
}
|
||||
return networkstatus_get_param(NULL, "usecreatefast", 0, 0, 1);
|
||||
return ! circuit_has_usable_onion_key(circ);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2632,22 +2632,6 @@ cpath_is_on_circuit(origin_circuit_t *circ, crypt_path_t *crypt_path)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Return true iff client-side optimistic data is supported. */
|
||||
static int
|
||||
optimistic_data_enabled(void)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
if (options->OptimisticData < 0) {
|
||||
/* Note: this default was 0 before #18815 was merged. We can't take the
|
||||
* parameter out of the consensus until versions before that are all
|
||||
* obsolete. */
|
||||
const int32_t enabled =
|
||||
networkstatus_get_param(NULL, "UseOptimisticData", /*default*/ 1, 0, 1);
|
||||
return (int)enabled;
|
||||
}
|
||||
return options->OptimisticData;
|
||||
}
|
||||
|
||||
/** Attach the AP stream <b>apconn</b> to circ's linked list of
|
||||
* p_streams. Also set apconn's cpath_layer to <b>cpath</b>, or to the last
|
||||
* hop in circ's cpath if <b>cpath</b> is NULL.
|
||||
@@ -2700,11 +2684,10 @@ link_apconn_to_circ(entry_connection_t *apconn, origin_circuit_t *circ,
|
||||
exitnode = node_get_by_id(cpath->extend_info->identity_digest);
|
||||
|
||||
/* 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_HSDIR_GET ||
|
||||
circ->base_.purpose == CIRCUIT_PURPOSE_S_HSDIR_POST ||
|
||||
circ->base_.purpose == CIRCUIT_PURPOSE_C_REND_JOINED))
|
||||
if (circ->base_.purpose == CIRCUIT_PURPOSE_C_GENERAL ||
|
||||
circ->base_.purpose == CIRCUIT_PURPOSE_C_HSDIR_GET ||
|
||||
circ->base_.purpose == CIRCUIT_PURPOSE_S_HSDIR_POST ||
|
||||
circ->base_.purpose == CIRCUIT_PURPOSE_C_REND_JOINED)
|
||||
apconn->may_use_optimistic_data = 1;
|
||||
else
|
||||
apconn->may_use_optimistic_data = 0;
|
||||
|
||||
@@ -110,7 +110,6 @@ NumDirectoryGuards 4
|
||||
NumEntryGuards 5
|
||||
NumPrimaryGuards 8
|
||||
OfflineMasterKey 1
|
||||
OptimisticData 1
|
||||
ORPort 2222
|
||||
OutboundBindAddress 10.0.0.7
|
||||
OutboundBindAddressExit 10.0.0.8
|
||||
|
||||
@@ -109,7 +109,6 @@ NumDirectoryGuards 4
|
||||
NumEntryGuards 5
|
||||
NumPrimaryGuards 8
|
||||
OfflineMasterKey 1
|
||||
OptimisticData 1
|
||||
ORPort 2222
|
||||
OutboundBindAddress 10.0.0.7
|
||||
OutboundBindAddressExit 10.0.0.8
|
||||
|
||||
Reference in New Issue
Block a user