[Modify] Return bool
This commit is contained in:
		@@ -666,8 +666,8 @@ namespace WebSocketSharp
 | 
			
		||||
    {
 | 
			
		||||
      _logger.Debug (String.Format ("A request from {0}:\n{1}", _context.UserEndPoint, _context));
 | 
			
		||||
 | 
			
		||||
      var msg = checkIfValidHandshakeRequest (_context);
 | 
			
		||||
      if (msg != null) {
 | 
			
		||||
      string msg;
 | 
			
		||||
      if (!checkIfValidHandshakeRequest (_context, out msg)) {
 | 
			
		||||
        sendHttpResponse (createHandshakeCloseResponse (HttpStatusCode.BadRequest));
 | 
			
		||||
        throw new WebSocketException (CloseStatusCode.ProtocolError, msg);
 | 
			
		||||
      }
 | 
			
		||||
@@ -698,18 +698,36 @@ namespace WebSocketSharp
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // As server
 | 
			
		||||
    private string checkIfValidHandshakeRequest (WebSocketContext context)
 | 
			
		||||
    private bool checkIfValidHandshakeRequest (WebSocketContext context, out string message)
 | 
			
		||||
    {
 | 
			
		||||
      message = null;
 | 
			
		||||
 | 
			
		||||
      if (context.RequestUri == null) {
 | 
			
		||||
        message = "Specifies an invalid Request-URI.";
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (!context.IsWebSocketRequest) {
 | 
			
		||||
        message = "Not a WebSocket handshake request.";
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      var headers = context.Headers;
 | 
			
		||||
      return context.RequestUri == null
 | 
			
		||||
             ? "Specifies an invalid Request-URI."
 | 
			
		||||
             : !context.IsWebSocketRequest
 | 
			
		||||
               ? "Not a WebSocket connection request."
 | 
			
		||||
               : !validateSecWebSocketKeyHeader (headers["Sec-WebSocket-Key"])
 | 
			
		||||
                 ? "Includes an invalid Sec-WebSocket-Key header."
 | 
			
		||||
                 : !validateSecWebSocketVersionClientHeader (headers["Sec-WebSocket-Version"])
 | 
			
		||||
                   ? "Includes an invalid Sec-WebSocket-Version header."
 | 
			
		||||
                   : CustomHandshakeRequestChecker (context);
 | 
			
		||||
      if (!validateSecWebSocketKeyHeader (headers["Sec-WebSocket-Key"])) {
 | 
			
		||||
        message = "Includes an invalid Sec-WebSocket-Key header.";
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (!validateSecWebSocketVersionClientHeader (headers["Sec-WebSocket-Version"])) {
 | 
			
		||||
        message = "Includes an invalid Sec-WebSocket-Version header.";
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      message = CustomHandshakeRequestChecker (context);
 | 
			
		||||
      if (message != null)
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
      return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // As client
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user