[Modify] Polish it
This commit is contained in:
parent
f0466795dc
commit
f557253a83
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user