[Modify] Polish it

This commit is contained in:
sta 2017-12-26 16:22:38 +09:00
parent c0502fe4e1
commit 65337146ec

View File

@ -612,25 +612,53 @@ namespace WebSocketSharp.Net
internal void SetRequestLine (string requestLine) internal void SetRequestLine (string requestLine)
{ {
var parts = requestLine.Split (new[] { ' ' }, 3); var parts = requestLine.Split (new[] { ' ' }, 3);
if (parts.Length != 3) { if (parts.Length < 3) {
_context.ErrorMessage = "Invalid request line (parts)"; _context.ErrorMessage = "Invalid request line (parts)";
return; return;
} }
_method = parts[0]; var method = parts[0];
if (!_method.IsToken ()) { if (method.Length == 0) {
_context.ErrorMessage = "Invalid request line (method)"; _context.ErrorMessage = "Invalid request line (method)";
return; return;
} }
_uri = parts[1]; if (!method.IsToken ()) {
_context.ErrorMessage = "Invalid request line (method)";
return;
}
var ver = parts[2]; var uri = parts[1];
if (ver.Length != 8 || if (uri.Length == 0) {
!ver.StartsWith ("HTTP/") || _context.ErrorMessage = "Invalid request line (uri)";
!tryCreateVersion (ver.Substring (5), out _version) || return;
_version.Major < 1) }
var rawVer = parts[2];
if (rawVer.Length != 8) {
_context.ErrorMessage = "Invalid request line (version)"; _context.ErrorMessage = "Invalid request line (version)";
return;
}
if (rawVer.IndexOf ("HTTP/") != 0) {
_context.ErrorMessage = "Invalid request line (version)";
return;
}
Version ver;
if (!tryCreateVersion (rawVer.Substring (5), out ver)) {
_context.ErrorMessage = "Invalid request line (version)";
return;
}
if (ver.Major < 1) {
_context.ErrorMessage = "Invalid request line (version)";
return;
}
_method = method;
_uri = uri;
_version = ver;
} }
#endregion #endregion