[Fix] Add a closing square bracket check

Fix for a part of pull request #264.
This commit is contained in:
sta 2016-05-27 15:33:25 +09:00
parent 6878e608e7
commit e8661442a8

View File

@ -126,15 +126,14 @@ namespace WebSocketSharp.Net
var len = uriPrefix.Length; var len = uriPrefix.Length;
var startHost = uriPrefix.IndexOf (':') + 3; var startHost = uriPrefix.IndexOf (':') + 3;
var colon = uriPrefix.IndexOf (':', startHost, len - startHost); var root = uriPrefix.IndexOf ('/', startHost, len - startHost);
var root = 0;
if (colon > 0) { var colon = uriPrefix.LastIndexOf (':', root - 1, root - startHost - 1);
root = uriPrefix.IndexOf ('/', colon, len - colon); if (uriPrefix[root - 1] != ']' && colon > startHost) {
_host = uriPrefix.Substring (startHost, colon - startHost); _host = uriPrefix.Substring (startHost, colon - startHost);
_port = (ushort) Int32.Parse (uriPrefix.Substring (colon + 1, root - colon - 1)); _port = (ushort) Int32.Parse (uriPrefix.Substring (colon + 1, root - colon - 1));
} }
else { else {
root = uriPrefix.IndexOf ('/', startHost, len - startHost);
_host = uriPrefix.Substring (startHost, root - startHost); _host = uriPrefix.Substring (startHost, root - startHost);
_port = (ushort) defaultPort; _port = (ushort) defaultPort;
} }