Fix due to the added IsValidWsUri method to Ext.cs
This commit is contained in:
@@ -37,6 +37,7 @@ using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using WebSocketSharp.Net;
|
||||
@@ -166,6 +167,45 @@ namespace WebSocketSharp
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool IsValidWsUri(this Uri uri, out string message)
|
||||
{
|
||||
if (!uri.IsAbsoluteUri)
|
||||
{
|
||||
message = "Not absolute uri: " + uri.ToString();
|
||||
return false;
|
||||
}
|
||||
|
||||
var scheme = uri.Scheme;
|
||||
if (scheme != "ws" && scheme != "wss")
|
||||
{
|
||||
message = "Unsupported WebSocket URI scheme: " + scheme;
|
||||
return false;
|
||||
}
|
||||
|
||||
var port = uri.Port;
|
||||
if (port > 0)
|
||||
{
|
||||
if ((scheme == "wss" && port != 443) ||
|
||||
(scheme != "wss" && port == 443))
|
||||
{
|
||||
message = String.Format(
|
||||
"Invalid pair of WebSocket URI scheme and port: {0}, {1}", scheme, port);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
var host = uri.DnsSafeHost;
|
||||
var addrs = Dns.GetHostAddresses(host);
|
||||
if (addrs.Length == 0)
|
||||
{
|
||||
message = "Invalid WebSocket URI host: " + host;
|
||||
return false;
|
||||
}
|
||||
|
||||
message = String.Empty;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Derived from System.Uri.MaybeUri method
|
||||
public static bool MaybeUri(this string uriString)
|
||||
{
|
||||
@@ -414,7 +454,8 @@ namespace WebSocketSharp
|
||||
return new Uri(uriString);
|
||||
}
|
||||
|
||||
public static void WriteContent(this HttpListenerResponse response, byte[] content)
|
||||
public static void WriteContent(
|
||||
this WebSocketSharp.Net.HttpListenerResponse response, byte[] content)
|
||||
{
|
||||
var output = response.OutputStream;
|
||||
response.ContentLength64 = content.Length;
|
||||
|
@@ -55,17 +55,14 @@ namespace WebSocketSharp.Server {
|
||||
|
||||
protected WebSocketServerBase(string url)
|
||||
{
|
||||
string msg;
|
||||
if (!isValidUri(url, out msg))
|
||||
throw new ArgumentException(msg, "url");
|
||||
|
||||
init();
|
||||
init(url);
|
||||
}
|
||||
|
||||
protected WebSocketServerBase(IPAddress address, int port)
|
||||
{
|
||||
_port = port <= 0 ? 80 : port;
|
||||
_address = address;
|
||||
_port = port <= 0 ? 80 : port;
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
@@ -149,48 +146,26 @@ namespace WebSocketSharp.Server {
|
||||
_isSelfHost = true;
|
||||
}
|
||||
|
||||
private bool isValidUri(string url, out string message)
|
||||
private void init(string url)
|
||||
{
|
||||
var uri = url.ToUri();
|
||||
if (!uri.IsAbsoluteUri)
|
||||
{
|
||||
message = "Not absolute uri: " + url;
|
||||
return false;
|
||||
}
|
||||
|
||||
string msg;
|
||||
if (!uri.IsValidWsUri(out msg))
|
||||
throw new ArgumentException(msg, "url");
|
||||
|
||||
var scheme = uri.Scheme;
|
||||
var port = uri.Port;
|
||||
var host = uri.DnsSafeHost;
|
||||
var ips = Dns.GetHostAddresses(host);
|
||||
|
||||
if (scheme != "ws" && scheme != "wss")
|
||||
{
|
||||
message = "Unsupported WebSocket URI scheme: " + scheme;
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((scheme == "wss" && port != 443) ||
|
||||
(scheme != "wss" && port == 443))
|
||||
{
|
||||
message = String.Format(
|
||||
"Invalid pair of WebSocket URI scheme and port: {0}, {1}", scheme, port);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ips.Length == 0)
|
||||
{
|
||||
message = "Invalid WebSocket URI host: " + host;
|
||||
return false;
|
||||
}
|
||||
var addrs = Dns.GetHostAddresses(host);
|
||||
|
||||
if (port <= 0)
|
||||
port = scheme == "ws" ? 80 : 443;
|
||||
|
||||
_address = ips[0];
|
||||
_address = addrs[0];
|
||||
_port = port;
|
||||
|
||||
message = String.Empty;
|
||||
return true;
|
||||
init();
|
||||
}
|
||||
|
||||
private void startAcceptClientThread()
|
||||
|
@@ -142,17 +142,16 @@ namespace WebSocketSharp
|
||||
public WebSocket(string url, params string[] protocols)
|
||||
: this()
|
||||
{
|
||||
var uri = new Uri(url);
|
||||
if (!isValidScheme(uri))
|
||||
{
|
||||
var msg = "Unsupported WebSocket URI scheme: " + uri.Scheme;
|
||||
var uri = url.ToUri();
|
||||
|
||||
string msg;
|
||||
if (!uri.IsValidWsUri(out msg))
|
||||
throw new ArgumentException(msg, "url");
|
||||
}
|
||||
|
||||
_uri = uri;
|
||||
_protocols = protocols.ToString(", ");
|
||||
_isClient = true;
|
||||
_isSecure = _uri.Scheme == "wss" ? true : false;
|
||||
_isSecure = uri.Scheme == "wss" ? true : false;
|
||||
}
|
||||
|
||||
public WebSocket(
|
||||
@@ -597,15 +596,6 @@ namespace WebSocketSharp
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool isValidScheme(Uri uri)
|
||||
{
|
||||
string scheme = uri.Scheme;
|
||||
if (scheme == "ws" || scheme == "wss")
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void message()
|
||||
{
|
||||
try
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user