File tree 1 file changed +11
-3
lines changed
1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -519,9 +519,17 @@ void HTTPConnection::loop() {
519
519
520
520
// Finally, after the handshake is done, we create the WebsocketHandler and change the internal state.
521
521
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
+ }
525
533
} else {
526
534
// Handling the request is done
527
535
HTTPS_LOGD (" Handler function done, request complete" );
You can’t perform that action at this time.
0 commit comments