コード例 #1
0
ファイル: V2rayHandler.cs プロジェクト: wpyok500/v2rayN
        /// <summary>
        /// 载入V2ray
        /// </summary>
        public void LoadV2ray(Config config)
        {
            if (Global.reloadV2ray)
            {
                var item = ConfigHandler.GetDefaultServer(ref config);
                if (item == null)
                {
                    ShowMsg(false, ResUI.CheckServerSettings);
                    return;
                }

                if (SetCore(config, item) != 0)
                {
                    ShowMsg(false, ResUI.CheckServerSettings);
                    return;
                }
                string fileName = Utils.GetPath(v2rayConfigRes);
                if (V2rayConfigHandler.GenerateClientConfig(item, fileName, false, out string msg) != 0)
                {
                    ShowMsg(false, msg);
                }
                else
                {
                    ShowMsg(true, msg);
                    V2rayRestart();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 载入V2ray
        /// </summary>
        public void LoadV2ray(Config config)
        {
            if (config.coreType == ECoreType.v2fly_core)
            {
                lstV2ray = new List <string>
                {
                    "wv2ray",
                    "v2ray"
                };
                coreUrl = Global.v2flyCoreUrl;
            }
            else
            {
                lstV2ray = new List <string>
                {
                    "xray"
                };
                coreUrl = Global.xrayCoreUrl;
            }

            if (Global.reloadV2ray)
            {
                var    item     = ConfigHandler.GetDefaultServer(ref config);
                string fileName = Utils.GetPath(v2rayConfigRes);
                if (V2rayConfigHandler.GenerateClientConfig(item, fileName, false, out string msg) != 0)
                {
                    ShowMsg(false, msg);
                }
                else
                {
                    ShowMsg(true, msg);
                    V2rayRestart();
                }
            }
        }
コード例 #3
0
ファイル: V2rayHandler.cs プロジェクト: SealJia/v2rayN-2
 /// <summary>
 /// 载入V2ray
 /// </summary>
 public void LoadV2ray(Config config)
 {
     if (Global.reloadV2ray)
     {
         string fileName = Utils.GetPath(v2rayConfigRes);
         if (V2rayConfigHandler.GenerateClientConfig(config, fileName, false, out string msg) != 0)
         {
             ShowMsg(false, msg);
         }
         else
         {
             ShowMsg(true, msg);
             V2rayRestart();
         }
     }
 }
コード例 #4
0
        /// <summary>
        /// 载入V2ray
        /// </summary>
        public Task LoadV2ray(Config config)
        {
            return(Task.Run(() =>
            {
                if (!Global.reloadV2ray)
                {
                    return;
                }

                string fileName = Utils.GetPath(v2rayConfigRes);
                bool bOk = V2rayConfigHandler.GenerateClientConfig(config, fileName, false, out string msg) == 0;
                ShowMsg(bOk, msg);
                if (bOk)
                {
                    V2rayRestart();
                }
            }));
        }
コード例 #5
0
ファイル: V2rayHandler.cs プロジェクト: a1ex4ord/v2rayN
        /// <summary>
        /// 载入V2ray
        /// </summary>
        public void LoadV2ray(Config config)
        {
            if (Global.reloadV2ray)
            {
                var item = ConfigHandler.GetDefaultServer(ref config);
                if (item == null)
                {
                    ShowMsg(false, ResUI.CheckServerSettings);
                    return;
                }

                if (SetCore(config, item) != 0)
                {
                    ShowMsg(false, ResUI.CheckServerSettings);
                    return;
                }
                string fileName = Utils.GetPath(v2rayConfigRes);
                if (V2rayConfigHandler.GenerateClientConfig(item, fileName, out string msg, out string content) != 0)
                {
                    ShowMsg(false, msg);
                }
                else
                {
                    ShowMsg(false, msg);
                    ShowMsg(true, $"[{config.GetGroupRemarks(item.groupId)}] {item.GetSummary()}");
                    V2rayRestart();
                }

                //start a socks service
                if (item.configType == EConfigType.Custom && item.preSocksPort > 0)
                {
                    var itemSocks = new VmessItem()
                    {
                        configType = EConfigType.Socks,
                        address    = Global.Loopback,
                        port       = item.preSocksPort
                    };
                    if (V2rayConfigHandler.GenerateClientConfig(itemSocks, null, out string msg2, out string configStr) == 0)
                    {
                        processId = V2rayStartNew(configStr);
                    }
                }
            }
コード例 #6
0
        /// <summary>
        /// 载入V2ray
        /// </summary>
        public void LoadV2ray(Config config)
        {
            if (Global.reloadV2ray)
            {
                string fileName = Utils.GetPath(v2rayConfigRes);
                if (V2rayConfigHandler.GenerateClientConfig(config, fileName, false, out string msg) != 0)
                {
                    ShowMsg(false, msg);
                }
                else
                {
                    var vmessSelected = config.vmess[config.index];
                    var isTrojan      = vmessSelected.configType == (int)EConfigType.Trojan;

                    // construct trojan config file before start
                    if (isTrojan)
                    {
                        TrojanConfigCli cfg = new TrojanConfigCli
                        {
                            remote_addr = vmessSelected.address,
                            remote_port = vmessSelected.port,
                            password    = new List <string>()
                            {
                                vmessSelected.id
                            },
                            local_port = config.inbound[0].localPort
                        };
                        if (config.allowLANConn)
                        {
                            cfg.local_addr = "0.0.0.0";
                        }

                        Utils.ToJsonFile(cfg, Utils.GetPath("config.json"));
                    }


                    ShowMsg(true, msg);
                    V2rayRestart(config.vmess[config.index].configType == (int)EConfigType.Trojan);
                }
            }
        }
コード例 #7
0
ファイル: V2rayHandler.cs プロジェクト: JMVoid/v2rayN
        /// <summary>
        /// 载入V2ray
        /// </summary>
        public void LoadV2ray(Config config)
        {
            if (Global.reloadV2ray)
            {
                string msg         = string.Empty;
                string fileName    = Utils.GetPath(v2rayConfigRes);
                string overtureMsg = string.Empty;
                string otFileName  = Utils.GetPath(overtureConfigRes);

                if (V2rayConfigHandler.GenerateClientConfig(config, fileName, false, out msg) != 0 ||
                    OvertureHandler.GenerateOvertureConfig(config, otFileName, out overtureMsg) != 0)
                {
                    ShowMsg(false, msg);
                }
                else
                {
                    ShowMsg(true, msg);
                    V2rayRestart();
                }
            }
        }