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