initial commit
Pulsar .NET 9.0 Windows Release / build (push) Canceled after 0s
Mirror to Codeberg and Gitea / mirror (push) Canceled after 0s

This commit is contained in:
i2p
2026-08-27 10:57:58 -06:00
commit 773d05f8f1
1038 changed files with 109261 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Pulsar.Common.DNS
{
public class HostsConverter
{
public List<Host> RawHostsToList(string rawHosts, bool server = false)
{
List<Host> hostsList = new List<Host>();
if (string.IsNullOrEmpty(rawHosts)) return hostsList;
if ((rawHosts.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ||
rawHosts.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) &&
!rawHosts.Contains(";"))
{
hostsList.Add(new Host { Hostname = rawHosts });
return hostsList;
}
var hosts = rawHosts.Split(';');
foreach (var host in hosts)
{
if (string.IsNullOrEmpty(host)) continue;
if (Uri.TryCreate(host, UriKind.Absolute, out Uri uri) &&
(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps))
{
hostsList.Add(new Host { Hostname = host });
}
else if (host.Contains(':'))
{
if (ushort.TryParse(host.Split(':').Last(), out ushort port))
{
hostsList.Add(new Host
{
Hostname = host.Substring(0, host.LastIndexOf(':')),
Port = port
});
}
}
else
{
hostsList.Add(new Host { Hostname = host });
}
}
return hostsList;
}
public string ListToRawHosts(IList<Host> hosts)
{
StringBuilder rawHosts = new StringBuilder();
foreach (var host in hosts)
rawHosts.Append(host + ";");
return rawHosts.ToString();
}
}
}