Browse Source

Add square bracket for SIP002 IPv6 (RFC3986)

tags/4.0.10
celeron533 7 years ago
parent
commit
5a78ee9212
2 changed files with 15 additions and 15 deletions
  1. +1
    -1
      shadowsocks-csharp/Controller/ShadowsocksController.cs
  2. +14
    -14
      shadowsocks-csharp/Model/Server.cs

+ 1
- 1
shadowsocks-csharp/Controller/ShadowsocksController.cs View File

@@ -353,7 +353,7 @@ namespace Shadowsocks.Controller
url = string.Format(
"{0}@{1}:{2}/?plugin={3}",
websafeBase64,
server.server,
server.FormatHostName(server.server),
server.server_port,
HttpUtility.UrlEncode(pluginPart, Encoding.UTF8));
}


+ 14
- 14
shadowsocks-csharp/Model/Server.cs View File

@@ -46,25 +46,25 @@ namespace Shadowsocks.Model
{
return I18N.GetString("New server");
}
string serverStr;
// CheckHostName() won't do a real DNS lookup
var hostType = Uri.CheckHostName(server);
switch (hostType)
{
case UriHostNameType.IPv6:
serverStr = $"[{server}]:{server_port}";
break;
default:
// IPv4 and domain name
serverStr = $"{server}:{server_port}";
break;
}
string serverStr = $"{FormatHostName(server)}:{server_port}";
return remarks.IsNullOrEmpty()
? serverStr
: $"{remarks} ({serverStr})";
}
public string FormatHostName(string hostName)
{
// CheckHostName() won't do a real DNS lookup
switch (Uri.CheckHostName(hostName))
{
case UriHostNameType.IPv6: // Add square bracket when IPv6 (RFC3986)
return $"[{hostName}]";
default: // IPv4 or domain name
return hostName;
}
}
public Server()
{
server = "";
@@ -141,7 +141,7 @@ namespace Shadowsocks.Model
Server server = new Server
{
remarks = parsedUrl.GetComponents(UriComponents.Fragment, UriFormat.Unescaped),
server = parsedUrl.GetComponents(UriComponents.Host, UriFormat.Unescaped),
server = parsedUrl.IdnHost,
server_port = parsedUrl.Port,
};


Loading…
Cancel
Save