mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int has_fetched_directory; /* from main.c */
|
|
||||||
|
|
||||||
/** Choose a length for a circuit of purpose <b>purpose</b>.
|
/** Choose a length for a circuit of purpose <b>purpose</b>.
|
||||||
* Default length is 3 + the number of endpoints that would give something
|
* Default length is 3 + the number of endpoints that would give something
|
||||||
* away. If the routerlist <b>routers</b> doesn't have enough routers
|
* 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 **********/
|
/********* START VARIABLES **********/
|
||||||
|
|
||||||
extern circuit_t *global_circuitlist; /* from circuitlist.c */
|
extern circuit_t *global_circuitlist; /* from circuitlist.c */
|
||||||
|
extern int has_fetched_directory; /* from main.c */
|
||||||
|
|
||||||
/********* END VARIABLES ************/
|
/********* 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)
|
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) {
|
if (n_circuit_failures > MAX_CIRCUIT_FAILURES) {
|
||||||
/* too many failed circs in a row. don't try. */
|
/* too many failed circs in a row. don't try. */
|
||||||
// log_fn(LOG_INFO,"%d failures so far, not trying.",n_circuit_failures);
|
// log_fn(LOG_INFO,"%d failures so far, not trying.",n_circuit_failures);
|
||||||
|
Loading…
Reference in New Issue
Block a user