File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -519,9 +519,17 @@ void HTTPConnection::loop() {
519519
520520 // Finally, after the handshake is done, we create the WebsocketHandler and change the internal state.
521521 if (websocketRequested) {
522- _wsHandler = ((WebsocketNode*)resolvedResource.getMatchingNode ())->newHandler ();
523- _wsHandler->initialize (this ); // make websocket with this connection
524- _connectionState = STATE_WEBSOCKET;
522+ HTTPNode *node = resolvedResource.getMatchingNode ();
523+
524+ // Check for websocket request on non-websocket node:
525+ if (node == nullptr || node->_nodeType != HTTPNodeType::WEBSOCKET) {
526+ HTTPS_LOGW (" Websocket request on non-websocket node rejected" );
527+ raiseError (404 , " Not Found" );
528+ } else {
529+ _wsHandler = ((WebsocketNode *) node)->newHandler ();
530+ _wsHandler->initialize (this ); // make websocket with this connection
531+ _connectionState = STATE_WEBSOCKET;
532+ }
525533 } else {
526534 // Handling the request is done
527535 HTTPS_LOGD (" Handler function done, request complete" );
You can’t perform that action at this time.
0 commit comments