Changed RefreshRouters to set longer timeout

This commit is contained in:
2022-07-03 16:49:00 -04:00
parent e44e760ad7
commit ccd3a7026d

View File

@@ -5,7 +5,7 @@ using System.Net;
using System.Text; using System.Text;
using TorControlLibrary; using TorControlLibrary;
using TorControlLibrary.Responses; using TorControlLibrary.Responses;
using Misc.Geolocation.API; //using Misc.Geolocation.API;
using System.Configuration; using System.Configuration;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using Hermes.Filters; using Hermes.Filters;
@@ -83,14 +83,6 @@ namespace Hermes
} }
static void InitializeRouterListAndSelector(ICircuitManager circuitManager) static void InitializeRouterListAndSelector(ICircuitManager circuitManager)
{ {
//Get router responses
TimeSpan defaultTimeout = ControlConnection.Timeout;
ControlConnection.Timeout = TimeSpan.FromMinutes(5);
IEnumerable<Router> routers = Router.ParseRouterStatusResponses(ControlConnection.GetAllRouterStatusInfo());
routers = RouterFilter.FilterRouters(routers);
ControlConnection.Timeout = defaultTimeout;
RouterList = new List<Router>(routers);
String routerSelectorName = ConfigurationManager.AppSettings["RouteSelector"]; String routerSelectorName = ConfigurationManager.AppSettings["RouteSelector"];
Type type = Type.GetType(String.Format("Hermes.Selectors.{0}", routerSelectorName)); Type type = Type.GetType(String.Format("Hermes.Selectors.{0}", routerSelectorName));
if (type == null) if (type == null)
@@ -98,13 +90,17 @@ namespace Hermes
RouteSelector = (IRouteSelector)Activator.CreateInstance(type); RouteSelector = (IRouteSelector)Activator.CreateInstance(type);
RouteSelector.Initialize(ControlConnection, circuitManager); RouteSelector.Initialize(ControlConnection, circuitManager);
RouteSelector.SetEffectiveRouterList(RouterList); RefreshActiveRouters();
} }
static void RefreshActiveRouters() static void RefreshActiveRouters()
{ {
TimeSpan defaultTimeout = ControlConnection.Timeout;
ControlConnection.Timeout = TimeSpan.FromMinutes(10);
IEnumerable<Router> routers = Router.ParseRouterStatusResponses(ControlConnection.GetAllRouterStatusInfo()); IEnumerable<Router> routers = Router.ParseRouterStatusResponses(ControlConnection.GetAllRouterStatusInfo());
routers = RouterFilter.FilterRouters(routers); routers = RouterFilter.FilterRouters(routers);
ControlConnection.Timeout = defaultTimeout;
RouterList = new List<Router>(routers); RouterList = new List<Router>(routers);
RouteSelector.SetEffectiveRouterList(RouterList); RouteSelector.SetEffectiveRouterList(RouterList);
} }
static ICircuitManager GetCircuitManager() static ICircuitManager GetCircuitManager()