mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-02 16:43:32 +01:00
if options.FascistFirewall but none are running on port 80, try
the others before giving up. svn:r2293
This commit is contained in:
parent
8798238af4
commit
8ddc029d07
@ -20,7 +20,7 @@ extern or_options_t options; /**< command-line and config-file options */
|
|||||||
|
|
||||||
/* static function prototypes */
|
/* static function prototypes */
|
||||||
static routerinfo_t *
|
static routerinfo_t *
|
||||||
router_pick_directory_server_impl(int requireauth, int preferothers);
|
router_pick_directory_server_impl(int requireauth, int requireothers, int fascistfirewall);
|
||||||
static void mark_all_authdirservers_up(void);
|
static void mark_all_authdirservers_up(void);
|
||||||
static int router_resolve_routerlist(routerlist_t *dir);
|
static int router_resolve_routerlist(routerlist_t *dir);
|
||||||
|
|
||||||
@ -47,15 +47,15 @@ extern int has_fetched_directory; /**< from main.c */
|
|||||||
routerinfo_t *router_pick_directory_server(int requireauth, int requireothers) {
|
routerinfo_t *router_pick_directory_server(int requireauth, int requireothers) {
|
||||||
routerinfo_t *choice;
|
routerinfo_t *choice;
|
||||||
|
|
||||||
choice = router_pick_directory_server_impl(requireauth, requireothers);
|
choice = router_pick_directory_server_impl(requireauth, requireothers, options.FascistFirewall);
|
||||||
if(choice)
|
if(choice)
|
||||||
return choice;
|
return choice;
|
||||||
|
|
||||||
log_fn(LOG_INFO,"No dirservers are reachable. Trying them all again.");
|
log_fn(LOG_INFO,"No dirservers are reachable. Trying them all again.");
|
||||||
/* mark all authdirservers are up again */
|
/* mark all authdirservers as up again */
|
||||||
mark_all_authdirservers_up();
|
mark_all_authdirservers_up();
|
||||||
/* try again */
|
/* try again */
|
||||||
choice = router_pick_directory_server_impl(requireauth, requireothers);
|
choice = router_pick_directory_server_impl(requireauth, requireothers, 0);
|
||||||
if(choice)
|
if(choice)
|
||||||
return choice;
|
return choice;
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ routerinfo_t *router_pick_directory_server(int requireauth, int requireothers) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* give it one last try */
|
/* give it one last try */
|
||||||
choice = router_pick_directory_server_impl(requireauth, requireothers);
|
choice = router_pick_directory_server_impl(requireauth, requireothers, 0);
|
||||||
return choice;
|
return choice;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ routerinfo_t *router_pick_directory_server(int requireauth, int requireothers) {
|
|||||||
* it has to be a trusted server. If requireothers, it cannot be us.
|
* it has to be a trusted server. If requireothers, it cannot be us.
|
||||||
*/
|
*/
|
||||||
static routerinfo_t *
|
static routerinfo_t *
|
||||||
router_pick_directory_server_impl(int requireauth, int requireothers)
|
router_pick_directory_server_impl(int requireauth, int requireothers, int fascistfirewall)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
routerinfo_t *router;
|
routerinfo_t *router;
|
||||||
@ -99,7 +99,7 @@ router_pick_directory_server_impl(int requireauth, int requireothers)
|
|||||||
continue;
|
continue;
|
||||||
if(requireothers && router_is_me(router))
|
if(requireothers && router_is_me(router))
|
||||||
continue;
|
continue;
|
||||||
if(options.FascistFirewall) {
|
if(fascistfirewall) {
|
||||||
sprintf(buf,"%d",router->dir_port);
|
sprintf(buf,"%d",router->dir_port);
|
||||||
if (!smartlist_string_isin(options.FirewallPorts, buf))
|
if (!smartlist_string_isin(options.FirewallPorts, buf))
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user