コード例 #1
0
 public static bool TryParse(string str, out HiddenServiceDir serviceDir)
 {
     serviceDir = null;
     if (!str.Trim().StartsWith("HiddenServiceDir ", StringComparison.OrdinalIgnoreCase))
         return false;
     var parts = str.Split(new char[] { ' ', '\t' }, StringSplitOptions.None);
     if (parts.Length != 2)
         return false;
     serviceDir = new HiddenServiceDir() { DirectoryPath = parts[1].Trim() };
     return true;
 }
コード例 #2
0
 public static bool TryParse(string str, out Torrc value)
 {
     value = null;
     List<HiddenServiceDir> serviceDirectories = new List<HiddenServiceDir>();
     var lines = str.Split(new char[] { '\n' });
     HiddenServiceDir currentDirectory = null;
     foreach (var line in lines)
     {
         if (HiddenServiceDir.TryParse(line, out var dir))
         {
             serviceDirectories.Add(dir);
             currentDirectory = dir;
         }
         else if (HiddenServicePortDefinition.TryParse(line, out var portDef) && currentDirectory != null)
         {
             currentDirectory.ServicePorts.Add(portDef);
         }
     }
     value = new Torrc() { ServiceDirectories = serviceDirectories };
     return true;
 }