mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-23 20:03:31 +01:00
refuse to build a circuit before the directory has arrived
this will prevent a few of the 'couldn't decrypt onionskin' errors, maybe svn:r2036
This commit is contained in:
parent
3294b514d3
commit
017d7d1fb3
@ -726,8 +726,6 @@ int onionskin_answer(circuit_t *circ, unsigned char *payload, unsigned char *key
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern int has_fetched_directory; /* from main.c */
|
||||
|
||||
/** Choose a length for a circuit of purpose <b>purpose</b>.
|
||||
* Default length is 3 + the number of endpoints that would give something
|
||||
* away. If the routerlist <b>routers</b> doesn't have enough routers
|
||||
|
@ -14,6 +14,7 @@ extern or_options_t options; /* command-line and config-file options */
|
||||
/********* START VARIABLES **********/
|
||||
|
||||
extern circuit_t *global_circuitlist; /* from circuitlist.c */
|
||||
extern int has_fetched_directory; /* from main.c */
|
||||
|
||||
/********* END VARIABLES ************/
|
||||
|
||||
@ -590,6 +591,11 @@ static int n_circuit_failures = 0;
|
||||
|
||||
circuit_t *circuit_launch_by_identity(uint8_t purpose, const char *exit_digest)
|
||||
{
|
||||
if (!has_fetched_directory) {
|
||||
log_fn(LOG_DEBUG,"Haven't fetched directory yet; cancelling circuit launch.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (n_circuit_failures > MAX_CIRCUIT_FAILURES) {
|
||||
/* too many failed circs in a row. don't try. */
|
||||
// log_fn(LOG_INFO,"%d failures so far, not trying.",n_circuit_failures);
|
||||
|
Loading…
Reference in New Issue
Block a user