[Modify] Polish it

This commit is contained in:
sta 2017-11-25 16:38:38 +09:00
parent f0466795dc
commit f557253a83

View File

@ -920,43 +920,60 @@ namespace WebSocketSharp
} }
// As server // As server
private bool checkHandshakeRequest (WebSocketContext context, out string message) private bool checkHandshakeRequest (
WebSocketContext context, out string message
)
{ {
message = null; message = null;
if (context.RequestUri == null) { if (!context.IsWebSocketRequest) {
message = "Specifies an invalid Request-URI."; message = "Not a handshake request.";
return false; return false;
} }
if (!context.IsWebSocketRequest) { if (context.RequestUri == null) {
message = "Not a WebSocket handshake request."; message = "It specifies an invalid Request-URI.";
return false; return false;
} }
var headers = context.Headers; var headers = context.Headers;
if (!validateSecWebSocketKeyHeader (headers["Sec-WebSocket-Key"])) {
message = "Includes no Sec-WebSocket-Key header, or it has an invalid value."; var key = headers["Sec-WebSocket-Key"];
if (key == null) {
message = "It includes no Sec-WebSocket-Key header.";
return false; return false;
} }
if (!validateSecWebSocketVersionClientHeader (headers["Sec-WebSocket-Version"])) { if (key.Length == 0) {
message = "Includes no Sec-WebSocket-Version header, or it has an invalid value."; message = "It includes an invalid Sec-WebSocket-Key header.";
return false; return false;
} }
if (!validateSecWebSocketProtocolClientHeader (headers["Sec-WebSocket-Protocol"])) { var version = headers["Sec-WebSocket-Version"];
message = "Includes an invalid Sec-WebSocket-Protocol header."; if (version == null) {
message = "It includes no Sec-WebSocket-Version header.";
return false; return false;
} }
if (!_ignoreExtensions if (!validateSecWebSocketVersionClientHeader (version)) {
&& !validateSecWebSocketExtensionsClientHeader (headers["Sec-WebSocket-Extensions"]) message = "It includes an invalid Sec-WebSocket-Version header.";
) {
message = "Includes an invalid Sec-WebSocket-Extensions header.";
return false; return false;
} }
var protocol = headers["Sec-WebSocket-Protocol"];
if (!validateSecWebSocketProtocolClientHeader (protocol)) {
message = "It includes an invalid Sec-WebSocket-Protocol header.";
return false;
}
if (!_ignoreExtensions) {
var extensions = headers["Sec-WebSocket-Extensions"];
if (!validateSecWebSocketExtensionsClientHeader (extensions)) {
message = "It includes an invalid Sec-WebSocket-Extensions header.";
return false;
}
}
return true; return true;
} }