mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Add support for a new option: FetchDirInfoExtraEarly
This new option will allow clients to download the newest fresh consensus much sooner than they normally would do so, even if they previously set FetchDirInfoEarly. This includes a proper ChangeLog entry and an updated man page.
This commit is contained in:
parent
041a7b9896
commit
e7576f92de
@ -29,6 +29,12 @@ Changes in version 0.2.2.1-alpha - 2009-??-??
|
|||||||
connecting clients to disk every 24 hours. To enable this, run
|
connecting clients to disk every 24 hours. To enable this, run
|
||||||
configure with the --enable-entry-stats option, and set
|
configure with the --enable-entry-stats option, and set
|
||||||
"EntryStatistics 1" in your torrc.
|
"EntryStatistics 1" in your torrc.
|
||||||
|
- Certain Tor clients (such as those behind check.torproject.org) may
|
||||||
|
want to fetch the consensus in an extra early manner. To enable this
|
||||||
|
a user may now set FetchDirInfoExtraEarly to 1. This also depends on
|
||||||
|
setting FetchDirInfoEarly to 1. Previous behavior will stay the same
|
||||||
|
as only certain clients who must have this information sooner should
|
||||||
|
set this option.
|
||||||
|
|
||||||
o Minor bugfixes
|
o Minor bugfixes
|
||||||
- Hidden service clients didn't use a cached service descriptor that
|
- Hidden service clients didn't use a cached service descriptor that
|
||||||
|
@ -241,6 +241,13 @@ fetching early. Normal users should leave it off.
|
|||||||
(Default: 0)
|
(Default: 0)
|
||||||
.LP
|
.LP
|
||||||
.TP
|
.TP
|
||||||
|
\fBFetchDirInfoExtraEarly \fR\fB0\fR|\fB1\fR\fP
|
||||||
|
If set to 1, Tor will fetch directory information before other
|
||||||
|
directory caches. It will attempt to download directory information closer to
|
||||||
|
the start of the consensus period. Normal users should leave it off.
|
||||||
|
(Default: 0)
|
||||||
|
.LP
|
||||||
|
.TP
|
||||||
\fBFetchHidServDescriptors \fR\fB0\fR|\fB1\fR\fP
|
\fBFetchHidServDescriptors \fR\fB0\fR|\fB1\fR\fP
|
||||||
If set to 0, Tor will never fetch any hidden service descriptors from
|
If set to 0, Tor will never fetch any hidden service descriptors from
|
||||||
the rendezvous directories. This option is only useful if you're using
|
the rendezvous directories. This option is only useful if you're using
|
||||||
|
@ -214,6 +214,7 @@ static config_var_t _option_vars[] = {
|
|||||||
V(FirewallPorts, CSV, ""),
|
V(FirewallPorts, CSV, ""),
|
||||||
V(FastFirstHopPK, BOOL, "1"),
|
V(FastFirstHopPK, BOOL, "1"),
|
||||||
V(FetchDirInfoEarly, BOOL, "0"),
|
V(FetchDirInfoEarly, BOOL, "0"),
|
||||||
|
V(FetchDirInfoExtraEarly, BOOL, "0"),
|
||||||
V(FetchServerDescriptors, BOOL, "1"),
|
V(FetchServerDescriptors, BOOL, "1"),
|
||||||
V(FetchHidServDescriptors, BOOL, "1"),
|
V(FetchHidServDescriptors, BOOL, "1"),
|
||||||
V(FetchUselessDescriptors, BOOL, "0"),
|
V(FetchUselessDescriptors, BOOL, "0"),
|
||||||
@ -3181,6 +3182,10 @@ options_validate(or_options_t *old_options, or_options_t *options,
|
|||||||
REJECT("HSAuthorityRecordStats is set but we're not running as "
|
REJECT("HSAuthorityRecordStats is set but we're not running as "
|
||||||
"a hidden service authority.");
|
"a hidden service authority.");
|
||||||
|
|
||||||
|
if (options->FetchDirInfoExtraEarly && !options->FetchDirInfoEarly)
|
||||||
|
REJECT("FetchDirInfoExtraEarly requires that you also set "
|
||||||
|
"FetchDirInfoEarly");
|
||||||
|
|
||||||
if (options->ConnLimit <= 0) {
|
if (options->ConnLimit <= 0) {
|
||||||
r = tor_snprintf(buf, sizeof(buf),
|
r = tor_snprintf(buf, sizeof(buf),
|
||||||
"ConnLimit must be greater than 0, but was set to %d",
|
"ConnLimit must be greater than 0, but was set to %d",
|
||||||
|
@ -1133,8 +1133,13 @@ update_consensus_networkstatus_fetch_time(time_t now)
|
|||||||
/* We want to cache the next one at some point after this one
|
/* We want to cache the next one at some point after this one
|
||||||
* is no longer fresh... */
|
* is no longer fresh... */
|
||||||
start = c->fresh_until + CONSENSUS_MIN_SECONDS_BEFORE_CACHING;
|
start = c->fresh_until + CONSENSUS_MIN_SECONDS_BEFORE_CACHING;
|
||||||
/* But only in the first half-interval after that. */
|
/* Some clients may need the consensus sooner than others. */
|
||||||
dl_interval = interval/2;
|
if (options->FetchDirInfoExtraEarly) {
|
||||||
|
dl_interval = 60;
|
||||||
|
} else {
|
||||||
|
/* But only in the first half-interval after that. */
|
||||||
|
dl_interval = interval/2;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
/* We're an ordinary client or a bridge. Give all the caches enough
|
/* We're an ordinary client or a bridge. Give all the caches enough
|
||||||
* time to download the consensus. */
|
* time to download the consensus. */
|
||||||
|
@ -2444,6 +2444,9 @@ typedef struct {
|
|||||||
* means directly from the authorities) no matter our other config? */
|
* means directly from the authorities) no matter our other config? */
|
||||||
int FetchDirInfoEarly;
|
int FetchDirInfoEarly;
|
||||||
|
|
||||||
|
/** Should we fetch our dir info at the start of the consensus period? */
|
||||||
|
int FetchDirInfoExtraEarly;
|
||||||
|
|
||||||
char *VirtualAddrNetwork; /**< Address and mask to hand out for virtual
|
char *VirtualAddrNetwork; /**< Address and mask to hand out for virtual
|
||||||
* MAPADDRESS requests. */
|
* MAPADDRESS requests. */
|
||||||
int ServerDNSSearchDomains; /**< Boolean: If set, we don't force exit
|
int ServerDNSSearchDomains; /**< Boolean: If set, we don't force exit
|
||||||
|
Loading…
Reference in New Issue
Block a user