public virtual void OnVpnDisconnected() { if (m_current != null) { try { m_current.OnVpnDisconnected(); Recovery.Save(); } catch (Exception e) { Engine.Instance.Logs.Log(e); } } }
public void OnUpdateIps() { if (m_current != null) { try { m_current.OnUpdateIps(); Recovery.Save(); } catch (Exception e) { Engine.Instance.Logs.Log(e); } } }
public virtual bool OnRouteDefaultRemoveDo() { List <RouteEntry> routeEntries = RouteList(); foreach (RouteEntry routeEntry in routeEntries) { if (routeEntry.Mask.ToString() == "0.0.0.0") { m_routeDefaultRemove = routeEntry; routeEntry.Remove(); Recovery.Save(); } } return(true); }
public bool Activation() { bool result = false; try { if (m_current != null) { throw new Exception(LanguageManager.GetText("NetworkLockUnexpectedAlreadyActive")); } NetworkLockPlugin nextCurrent = null; string requestedMode = Engine.Instance.Storage.GetLower("netlock.mode"); if (requestedMode == "auto") { requestedMode = Platform.Instance.OnNetworkLockRecommendedMode(); } if (requestedMode != "none") { foreach (NetworkLockPlugin plugin in Modes) { if (plugin.GetSupport()) { if (requestedMode == plugin.GetCode()) { nextCurrent = plugin; break; } } } } if (nextCurrent == null) { Engine.Instance.Logs.Log(LogType.Fatal, LanguageManager.GetText("NetworkLockNoMode")); } else { string message = LanguageManager.GetText("NetworkLockActivation") + " - " + nextCurrent.GetName(); Engine.Instance.WaitMessageSet(message, false); Engine.Instance.Logs.Log(LogType.InfoImportant, message); // This is not useless: resolve hostnames (available later as cache) before a possible lock of DNS server. nextCurrent.GetIpsWhiteListOutgoing(true); nextCurrent.Activation(); m_current = nextCurrent; result = true; } } catch (Exception e) { Engine.Instance.Logs.Log(LogType.Fatal, e); } Recovery.Save(); return(result); }