Example #1
0
 public static int primary(Config config, ref OvertureConfig overtureConfig)
 {
     try
     {
         if (string.IsNullOrWhiteSpace(config.directDNS))
         {
             return(0);
         }
         List <string> servers = new List <string>();
         string[]      arrDNS  = config.directDNS.Split(',');
         foreach (string str in arrDNS)
         {
             string ipStr = str.Trim();
             if (Utils.IsIPort(ipStr))
             {
                 servers.Add(ipStr);
             }
         }
         if (overtureConfig.PrimaryDNS.Count >= 1 && servers.Count >= 1)
         {
             int count = 0;
             foreach (DnsSetting dnsSetting in overtureConfig.PrimaryDNS)
             {
                 if (!Utils.IsNullOrEmpty(servers[count]))
                 {
                     dnsSetting.Address = servers[count];
                 }
                 count++;
             }
         }
     }
     catch {
     }
     return(0);
 }
Example #2
0
        //private static string SampleOverture = Global.overtureSampleConfig;
        /// <summary>
        ///  Generate the overture/x2ray dns configuration file
        /// </summary>

        public static int GenerateOvertureConfig(Config config, string fileName, out string msg)
        {
            msg = string.Empty;
            try
            {
                msg = UIRes.I18N("InitialConfiguration");
                string result = Utils.GetEmbedText(Global.overtureSampleConfig);
                if (Utils.IsNullOrEmpty(result))
                {
                    msg = UIRes.I18N("FailedGetDefaultConfiguration");
                    return(-1);
                }
                OvertureConfig overtureConfig = Utils.FromJson <OvertureConfig>(result);
                if (overtureConfig == null)
                {
                    msg = UIRes.I18N("FailedGenDefaultConfiguration");
                    return(-1);
                }
                primary(config, ref overtureConfig);
                alternative(config, ref overtureConfig);
                Utils.ToJsonFile(overtureConfig, fileName);
                msg = string.Format(UIRes.I18N("SuccessfulConfiguration"), config.getSummary());
            }
            catch {
                msg = UIRes.I18N("FailedGenDefaultConfiguration");
                return(-1);
            }
            return(0);
        }
Example #3
0
 public static int alternative(Config config, ref OvertureConfig overtureConfig)
 {
     try
     {
         if (string.IsNullOrWhiteSpace(config.proxyDNS))
         {
             return(0);
         }
         List <string> servers = new List <string>();
         string[]      arrDNS  = config.proxyDNS.Split(',');
         foreach (string str in arrDNS)
         {
             string ipStr = str.Trim();
             if (Utils.IsIPort(ipStr))
             {
                 servers.Add(ipStr);
             }
         }
         if (overtureConfig.AlternativeDNS.Count >= 1 && servers.Count >= 1)
         {
             int count = 0;
             foreach (DnsSetting dnsSetting in overtureConfig.AlternativeDNS)
             {
                 if (!Utils.IsNullOrEmpty(servers[count]))
                 {
                     dnsSetting.Address = servers[count];
                 }
                 dnsSetting.SOCKS5Address = "127.0.0.1:" + config.inbound[0].localPort;
                 count++;
             }
         }
     }
     catch {
     }
     return(0);
 }