public void UpdateTrackerSettingNow() { var fakeCtrl = new Controller.CoreServerCtrl( new VgcApis.Models.Datas.CoreInfo()); ServerTrackingUpdateWorker(fakeCtrl, false); }
public bool AddServer(string config, string mark, bool quiet = false) { // duplicate if (IsServerItemExist(config)) { return(false); } var newServer = new Controller.CoreServerCtrl() { config = config, mark = mark, }; lock (serverListWriteLock) { serverList.Add(newServer); } newServer.Run(cache, setting, this); BindEventsTo(newServer); if (!quiet) { newServer.UpdateSummaryThen(() => { InvokeEventOnRequireMenuUpdate(this, EventArgs.Empty); InvokeEventOnRequireFlyPanelUpdate(); }); } setting.LazyGC(); LazySaveServerList(); return(true); }
void BindEventsTo(Controller.CoreServerCtrl server) { server.OnCoreClosing += InvokeEventOnCoreClosingIgnoreError; server.OnCoreStart += OnTrackCoreStartHandler; server.OnCoreStop += OnTrackCoreStopHandler; server.OnPropertyChanged += InvokeEventOnServerPropertyChange; }
void ReleaseEventsFrom(Controller.CoreServerCtrl server) { server.OnCoreClosing -= InvokeEventOnCoreClosingIgnoreError; server.OnCoreStart -= OnTrackCoreStartHandler; server.OnCoreStop -= OnTrackCoreStopHandler; server.OnPropertyChanged -= InvokeEventOnServerPropertyChange; }
void BindEventsTo(Controller.CoreServerCtrl server) { server.OnCoreClosing += InvokeEventOnCoreClosing; server.OnRequireKeepTrack += OnRequireKeepTrackHandler; server.OnPropertyChanged += ServerItemPropertyChangedHandler; server.OnRequireMenuUpdate += InvokeEventOnRequireMenuUpdate; server.OnRequireStatusBarUpdate += InvokeEventOnRequireStatusBarUpdate; server.OnRequireNotifierUpdate += LazyUpdateNotifyTextHandler; }
void ReleaseEventsFrom(Controller.CoreServerCtrl server) { server.OnCoreClosing -= InvokeEventOnCoreClosing; server.OnRequireKeepTrack -= OnRequireKeepTrackHandler; server.OnPropertyChanged -= ServerItemPropertyChangedHandler; server.OnRequireMenuUpdate -= InvokeEventOnRequireMenuUpdate; server.OnRequireStatusBarUpdate -= InvokeEventOnRequireStatusBarUpdate; server.OnRequireNotifierUpdate -= LazyUpdateNotifyTextHandler; }
void LazyServerTrackUpdateWorker( Controller.CoreServerCtrl servCtrl, bool isStart) { var curTrackerSetting = GenCurTrackerSetting(servCtrl.config, isStart); setting.SaveServerTrackerSetting(curTrackerSetting); return; }
public void UpdateTrackerSettingNow() { var fakeCtrl = new Controller.CoreServerCtrl { config = "", }; LazyServerTrackUpdateWorker(fakeCtrl, false); }
public bool AddServer(string config, string mark, bool quiet = false) { // first check if (IsServerExist(config)) { return(false); } var coreInfo = new VgcApis.Models.Datas.CoreInfo { foldingLevel = setting.CustomDefImportIsFold ? 1 : 0, isInjectImport = setting.CustomDefImportGlobalImport, isInjectSkipCNSite = setting.CustomDefImportBypassCnSite, customInbType = setting.CustomDefImportMode, inbIp = setting.CustomDefImportIp, inbPort = setting.CustomDefImportPort, config = config, customMark = mark, }; var newServer = new Controller.CoreServerCtrl(coreInfo); newServer.Run(cache, setting, configMgr, this); bool duplicated = true; lock (serverListWriteLock) { // double check if (!IsServerExist(config)) { coreServList.Add(newServer); duplicated = false; } } if (duplicated) { newServer.Dispose(); return(false); } BindEventsTo(newServer); if (!quiet) { newServer.GetConfiger().UpdateSummaryThen(() => { // UpdateSummaryThen will invoke OnServerPropertyChange. InvokeEventOnServerCountChange(this, EventArgs.Empty); RequireFormMainUpdate(); }); } setting.LazyGC(); serverSaver.DoItLater(); return(true); }
void LazyServerTrackUpdateWorker( Controller.CoreServerCtrl servCtrl, bool isStart) { var curTrackerSetting = GenCurTrackerSetting(servCtrl.config, isStart); var isGlobal = false; curTrackerSetting.curServer = null; var proxySetting = setting.GetSysProxySetting(); switch (PacServer.DetectSystemProxyMode(proxySetting)) { case Model.Data.Enum.SystemProxyMode.None: setting.SaveServerTrackerSetting(curTrackerSetting); return; case Model.Data.Enum.SystemProxyMode.Global: isGlobal = true; break; case Model.Data.Enum.SystemProxyMode.PAC: isGlobal = false; break; } foreach (var c in curTrackerSetting.serverList) { // 按trackerList的顺序来试 var serv = serverList.FirstOrDefault(s => s.config == c); if (serv == null) { continue; } if (serv.BecomeSystemProxy(isGlobal)) { curTrackerSetting.curServer = serv.config; break; } } // 没有可用服务器时不要清空代理设置 // 否则全部重启时会丢失代理设置 if (curTrackerSetting.curServer == null) { OnSendLogHandler(this, new Model.Data.StrEvent(I18N.NoServerCapableOfSysProxy)); if (serverList.Count(s => s.isServerOn && !s.isUntrack) > 0) { Task.Factory.StartNew(() => MessageBox.Show(I18N.SetSysProxyFail)); } } setting.SaveServerTrackerSetting(curTrackerSetting); }
void ReleaseEventsFrom(Controller.CoreServerCtrl server) { server.OnCoreClosing -= InvokeEventOnCoreClosingIgnoreError; server.OnTrackCoreStart -= OnTrackCoreStartHandler; server.OnTrackCoreStop -= OnTrackCoreStopHandler; server.OnPropertyChanged -= ServerItemPropertyChangedHandler; server.OnRequireMenuUpdate -= InvokeEventOnRequireMenuUpdate; server.OnRequireStatusBarUpdate -= InvokeEventOnRequireStatusBarUpdate; server.OnRequireNotifierUpdate -= NotifierTextUpdateHandler; }
void BindEventsTo(Controller.CoreServerCtrl server) { server.OnCoreClosing += InvokeEventOnCoreClosingIgnoreError; server.OnTrackCoreStart += OnTrackCoreStartHandler; server.OnTrackCoreStop += OnTrackCoreStopHandler; server.OnPropertyChanged += ServerItemPropertyChangedHandler; server.OnRequireMenuUpdate += InvokeEventOnRequireMenuUpdate; server.OnRequireStatusBarUpdate += InvokeEventOnRequireStatusBarUpdate; server.OnRequireNotifierUpdate += NotifierTextUpdateHandler; }
void ServerTrackingUpdateWorker( Controller.CoreServerCtrl coreServCtrl, bool isStart) { var curTrackerSetting = configMgr.GenCurTrackerSetting( coreServList.AsReadOnly(), coreServCtrl.GetConfiger().GetConfig(), isStart); setting.SaveServerTrackerSetting(curTrackerSetting); return; }
public bool AddServer(string config, string mark, bool quiet = false) { // first check if (IsServerExist(config)) { return(false); } var newServer = new Controller.CoreServerCtrl( new VgcApis.Models.Datas.CoreInfo { customInbType = setting.CustomDefImportMode, inbIp = setting.CustomDefImportIp, inbPort = setting.CustomDefImportPort, config = config, customMark = mark, }); newServer.Run(cache, setting, configMgr, this); bool duplicated = true; lock (serverListWriteLock) { // double check if (!IsServerExist(config)) { coreServList.Add(newServer); duplicated = false; } } if (duplicated) { newServer.Dispose(); return(false); } BindEventsTo(newServer); if (!quiet) { newServer.GetConfiger().UpdateSummaryThen(() => { InvokeEventOnRequireMenuUpdate(this, EventArgs.Empty); RequireFormMainUpdate(); }); } setting.LazyGC(); serverSaver.DoItLater(); return(true); }
void LazyServerTrackUpdateWorker( Controller.CoreServerCtrl servCtrl, bool isStart) { var curTrackerSetting = GenCurTrackerSetting(servCtrl.config, isStart); var isGlobal = false; curTrackerSetting.curServer = null; switch (Service.PacServer.DetectSystemProxyMode( setting.GetSysProxySetting())) { case Model.Data.Enum.SystemProxyMode.None: setting.SaveServerTrackerSetting(curTrackerSetting); return; case Model.Data.Enum.SystemProxyMode.Global: isGlobal = true; break; case Model.Data.Enum.SystemProxyMode.PAC: isGlobal = false; break; } foreach (var c in curTrackerSetting.serverList) { // 按trackerList的顺序来试 var serv = serverList.FirstOrDefault(s => s.config == c); if (serv == null) { continue; } if (serv.BecomeSystemProxy(isGlobal)) { curTrackerSetting.curServer = serv.config; break; } } // 没有可用服务器时不要清空代理设置 // 否则全部重启时会丢失代理设置 if (isStart && curTrackerSetting.curServer != servCtrl.config) { Task.Factory.StartNew(() => MessageBox.Show(I18N.SetSysProxyFail)); } setting.SaveServerTrackerSetting(curTrackerSetting); }
public ServerUI(Controller.CoreServerCtrl serverItem) { setting = Service.Setting.Instance; servers = Service.Servers.Instance; this.serverItem = serverItem; InitializeComponent(); this.foldingButtonIcons = new Bitmap[] { Properties.Resources.StepBackArrow_16x, Properties.Resources.StepOverArrow_16x, }; this.formHeight = new int[] { this.Height, // collapseLevel= 0 this.cboxInbound.Top, }; }
void InitServerCtrlList() { lock (serverListWriteLock) { var coreInfoList = setting.LoadCoreInfoList(); foreach (var coreInfo in coreInfoList) { var server = new Controller.CoreServerCtrl(coreInfo); coreServList.Add(server); } } foreach (var server in coreServList) { server.Run(cache, setting, configMgr, this); BindEventsTo(server); } }
public FormSingleServerLog(Controller.CoreServerCtrl serverItem) { this.serverItem = serverItem; InitializeComponent(); this.FormClosed += (s, e) => { if (updateLogTimer != null) { updateLogTimer.Stop(); updateLogTimer.Tick -= UpdateLog; updateLogTimer.Dispose(); } }; VgcApis.Libs.UI.AutoSetFormIcon(this); this.Show(); this.Text = I18N.Log + " - " + serverItem.GetTitle(); }
public bool AddServer(string config, string mark, bool quiet = false) { // duplicate if (IsServerExist(config)) { return(false); } var coreInfo = new VgcApis.Models.Datas.CoreInfo { config = config, customMark = mark, }; var newServer = new Controller.CoreServerCtrl(coreInfo); lock (serverListWriteLock) { coreServList.Add(newServer); } newServer.Run(cache, setting, configMgr, this); BindEventsTo(newServer); if (!quiet) { newServer.GetConfiger().UpdateSummaryThen(() => { InvokeEventOnRequireMenuUpdate(this, EventArgs.Empty); RequireFormMainUpdate(); }); } setting.LazyGC(); serverSaver.DoItLater(); return(true); }
void ModifyServerSetting( ref Controller.CoreServerCtrl server, int newMode, string newIP, int newPort, string newMark, int newAutorun, int newImport, int newSkipCN) { if (newSkipCN >= 0) { server.isInjectSkipCNSite = newSkipCN == 0; } if (newAutorun >= 0) { server.isAutoRun = newAutorun == 0; } if (newImport >= 0) { server.isInjectImport = newImport == 0; } if (newMode >= 0) { server.overwriteInboundType = newMode; } if (newIP != null) { server.inboundIP = newIP; } if (newPort >= 0) { server.inboundPort = newPort; } if (newMark != null) { server.mark = newMark; } }
public FormSingleServerLog(Controller.CoreServerCtrl serverItem) { maxNumberLines = Service.Setting.Instance.maxLogLines; this.serverItem = serverItem; InitializeComponent(); this.FormClosed += (s, e) => { serverItem.OnLog -= OnLogHandler; }; #if DEBUG this.Icon = Properties.Resources.icon_light; #endif this.Show(); this.Text = I18N.Log + " - " + serverItem.summary; rtBoxLogger.Text = serverItem.LogCache; serverItem.OnLog += OnLogHandler; }
public servInfo(Controller.CoreServerCtrl servCtrl) { isRunning = servCtrl.isServerOn; title = servCtrl.GetTitle(); sha = Lib.Utils.SHA256(servCtrl.config); }