res_http_websocket.c: Fix some off nominal path cleanup.
[asterisk/asterisk.git] / res / res_http_websocket.c
index a29daa8..86ec00c 100644 (file)
@@ -209,7 +209,6 @@ int AST_OPTIONAL_API_NAME(ast_websocket_server_add_protocol)(struct ast_websocke
 
        protocol = ast_websocket_sub_protocol_alloc(name);
        if (!protocol) {
 
        protocol = ast_websocket_sub_protocol_alloc(name);
        if (!protocol) {
-               ao2_unlock(server->protocols);
                return -1;
        }
        protocol->session_established = callback;
                return -1;
        }
        protocol->session_established = callback;
@@ -840,6 +839,7 @@ int AST_OPTIONAL_API_NAME(ast_websocket_uri_cb)(struct ast_tcptls_session_instan
                    && protocol_handler->session_attempted(ser, get_vars, headers, session->session_id)) {
                        ast_debug(3, "WebSocket connection from '%s' rejected by protocol handler '%s'\n",
                                ast_sockaddr_stringify(&ser->remote_address), protocol_handler->name);
                    && protocol_handler->session_attempted(ser, get_vars, headers, session->session_id)) {
                        ast_debug(3, "WebSocket connection from '%s' rejected by protocol handler '%s'\n",
                                ast_sockaddr_stringify(&ser->remote_address), protocol_handler->name);
+                       websocket_bad_request(ser);
                        ao2_ref(protocol_handler, -1);
                        return 0;
                }
                        ao2_ref(protocol_handler, -1);
                        return 0;
                }