Example #1
0
        public CoreServSettings(VgcApis.Interfaces.ICoreServCtrl coreServ) :
            this()
        {
            var cs = coreServ.GetCoreStates();

            index          = cs.GetIndex();
            mark           = cs.GetMark();
            remark         = cs.GetRemark();
            isAutorun      = cs.IsAutoRun();
            isUntrack      = cs.IsUntrack();
            isGlobalImport = cs.IsInjectGlobalImport();
            isBypassCnSite = cs.IsInjectSkipCnSite();
            inboundMode    = cs.GetInboundType();
            inboundAddress = cs.GetInboundAddr();

            try
            {
                var ccfg   = coreServ.GetConfiger();
                var cfg    = ccfg.GetConfig();
                var json   = JObject.Parse(cfg);
                var GetStr = Misc.Utils.GetStringByKeyHelper(json);
                serverName        = GetStr("v2raygcon.alias");
                serverDescription = GetStr("v2raygcon.description");
            }
            catch { }
        }
Example #2
0
 public void Rebind(VgcApis.Interfaces.ICoreServCtrl coreServCtrl)
 {
     ReleaseCoreCtrlEvents(this.coreServCtrl);
     this.coreServCtrl = coreServCtrl;
     ResetControls();
     BindCoreCtrlEvents(coreServCtrl);
     RefreshUiLater();
 }
Example #3
0
        int SpeedTestComparer(
            VgcApis.Interfaces.ICoreServCtrl a,
            VgcApis.Interfaces.ICoreServCtrl b)
        {
            var spa = a.GetCoreStates().GetSpeedTestResult();
            var spb = b.GetCoreStates().GetSpeedTestResult();

            return(spa.CompareTo(spb));
        }
Example #4
0
        int UtcTicksDecComparer(
            VgcApis.Interfaces.ICoreServCtrl a,
            VgcApis.Interfaces.ICoreServCtrl b)
        {
            var ticksA = a.GetCoreStates().GetLastModifiedUtcTicks();
            var ticksB = b.GetCoreStates().GetLastModifiedUtcTicks();

            return(ticksB.CompareTo(ticksA));
        }
Example #5
0
        public ServerUI(VgcApis.Interfaces.ICoreServCtrl serverItem)
        {
            servers  = Services.Servers.Instance;
            slinkMgr = Services.ShareLinkMgr.Instance;
            settings = Services.Settings.Instance;

            this.coreServCtrl = serverItem;
            InitializeComponent();
        }
Example #6
0
        int UploadTotalDecComparer(
            VgcApis.Interfaces.ICoreServCtrl a,
            VgcApis.Interfaces.ICoreServCtrl b)
        {
            var ticksA = a.GetCoreStates().GetUplinkTotalInBytes();
            var ticksB = b.GetCoreStates().GetUplinkTotalInBytes();

            return(ticksB.CompareTo(ticksA));
        }
Example #7
0
        int ReverseIndexComparer(
            VgcApis.Interfaces.ICoreServCtrl a,
            VgcApis.Interfaces.ICoreServCtrl b)
        {
            var idxA = a.GetCoreStates().GetIndex();
            var idxB = b.GetCoreStates().GetIndex();

            return(idxB.CompareTo(idxA));
        }
Example #8
0
 private void BindCoreCtrlEvents(VgcApis.Interfaces.ICoreServCtrl cs)
 {
     if (cs == null)
     {
         return;
     }
     cs.OnCoreStart       += OnCorePropertyChangesHandler;
     cs.OnCoreStop        += OnCorePropertyChangesHandler;
     cs.OnPropertyChanged += OnCorePropertyChangesHandler;
 }
Example #9
0
 public CoreEvHook(
     CoreEvTypes evType,
     VgcApis.Interfaces.ICoreServCtrl coreServCtrl,
     VgcApis.Interfaces.Lua.ILuaMailBox mailBox,
     EventHandler evHandler)
 {
     this.evType       = evType;
     this.coreServCtrl = coreServCtrl;
     this.mailBox      = mailBox;
     this.evHandler    = evHandler;
 }
Example #10
0
        int SummaryComparer(
            VgcApis.Interfaces.ICoreServCtrl a,
            VgcApis.Interfaces.ICoreServCtrl b)
        {
            var sma = a.GetCoreStates().GetSummary();
            var smb = b.GetCoreStates().GetSummary();

            var rsma = VgcApis.Misc.Utils.ReverseSummary(sma);
            var rsmb = VgcApis.Misc.Utils.ReverseSummary(smb);

            return(rsma.CompareTo(rsmb));
        }
Example #11
0
        public ServerUI(VgcApis.Interfaces.ICoreServCtrl serverItem)
        {
            servers  = Services.Servers.Instance;
            slinkMgr = Services.ShareLinkMgr.Instance;
            settings = Services.Settings.Instance;

            this.coreServCtrl = serverItem;
            InitializeComponent();


            lazyUiUpdater = new VgcApis.Libs.Tasks.LazyGuy(RefreshUiLater, 100);
        }
Example #12
0
        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!Misc.UI.Confirm(I18N.ConfirmDeleteControl))
            {
                return;
            }

            var csc = this.coreServCtrl;

            this.coreServCtrl = null;
            ReleaseCoreCtrlEvents(csc);
            var config = csc?.GetConfiger()?.GetConfig() ?? "";

            servers.DeleteServerByConfig(config);
        }
Example #13
0
        Models.StatsResult GetterCoreInfo(VgcApis.Interfaces.ICoreServCtrl coreCtrl)
        {
            var result = new Models.StatsResult();

            result.title = coreCtrl.GetCoreStates().GetTitle();
            result.uid   = coreCtrl.GetCoreStates().GetUid();

            var curData = coreCtrl.GetCoreCtrl().TakeStatisticsSample();

            if (curData != null)
            {
                result.stamp     = curData.stamp;
                result.totalUp   = curData.statsUplink;
                result.totalDown = curData.statsDownlink;
            }
            return(result);
        }
Example #14
0
        void ModifyServerSetting(
            ref VgcApis.Interfaces.ICoreServCtrl serverCtrl,
            int newMode, string newIP, int newPort,
            string newMark, string newRemark, int newAutorun, int newImport, int newSkipCN)
        {
            var server = serverCtrl.GetCoreStates().GetAllRawCoreInfo();

            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.customInbType = newMode;
            }

            if (newIP != null)
            {
                server.inbIp = newIP;
            }
            if (newPort >= 0)
            {
                server.inbPort = newPort;
            }

            if (newMark != null)
            {
                server.customMark = newMark;
            }

            if (!string.IsNullOrEmpty(newRemark))
            {
                server.customRemark = newRemark;
            }
        }
Example #15
0
        public string RegisterCoreEvent(
            VgcApis.Interfaces.ICoreServCtrl coreServ,
            VgcApis.Interfaces.Lua.ILuaMailBox mailbox,
            int evType,
            int evCode)
        {
            // 无权访问
            if (!postOffice.ValidateMailBox(mailbox))
            {
                return(null);
            }

            try
            {
                var          handle  = Guid.NewGuid().ToString();
                var          addr    = mailbox.GetAddress();
                EventHandler handler = (s, a) => mailbox.SendCode(addr, evCode);
                switch ((CoreEvTypes)evType)
                {
                case CoreEvTypes.CoreStart:
                    coreServ.OnCoreStart += handler;
                    break;

                case CoreEvTypes.CoreStop:
                    coreServ.OnCoreStop += handler;
                    break;

                case CoreEvTypes.CoreClosing:
                    coreServ.OnCoreStop += handler;
                    break;

                case CoreEvTypes.PropertyChanged:
                    coreServ.OnPropertyChanged += handler;
                    break;

                default:
                    return(null);
                }
                var item = new CoreEvHook((CoreEvTypes)evType, coreServ, mailbox, handler);
                coreEvHooks.TryAdd(handle, item);
                return(handle);
            }
            catch { }
            return(null);
        }
Example #16
0
        public void LoadCoreServer(VgcApis.Interfaces.ICoreServCtrl coreServ)
        {
            this.coreServ = coreServ;
            VgcApis.Misc.UI.Invoke(() =>
            {
                if (this.coreServ == null)
                {
                    lbTitle.Visible          = false;
                    linkConfigEditor.Visible = true;
                    return;
                }

                var title                = coreServ.GetCoreStates().GetTitle();
                lbTitle.Text             = title;
                lbTitle.Visible          = true;
                linkConfigEditor.Visible = false;
                var config               = coreServ.GetConfiger().GetConfig();
                this.veeConfigerUI1.FromCoreConfig(config);
            });
        }
Example #17
0
        private ToolStripMenuItem CoreServ2MenuItem(VgcApis.Interfaces.ICoreServCtrl coreServ)
        {
            var coreState = coreServ.GetCoreStates();

            var dely  = coreState.GetSpeedTestResult();
            var title = coreState.GetTitle();

            if (dely == SpeedtestTimeout)
            {
                title = $"{title} - ({I18N.Timeout})";
            }
            else if (dely > 0)
            {
                title = $"{title} - ({dely}ms)";
            }

            Action done    = () => coreServ.GetCoreCtrl().RestartCoreThen();
            Action onClick = () => servers.StopAllServersThen(done);
            var    item    = new ToolStripMenuItem(title, null, (s, a) => onClick());

            item.Checked = coreServ.GetCoreCtrl().IsCoreRunning();
            return(item);
        }