]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_http_websocket.c: Fix some off nominal path cleanup. 16/1116/1
authorRichard Mudgett <rmudgett@digium.com>
Tue, 18 Aug 2015 21:06:54 +0000 (16:06 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 18 Aug 2015 21:49:48 +0000 (16:49 -0500)
* Remove extraneous unlock on off-nominal path.
* Add missing HTTP error reply.

Change-Id: I1f402bfe448fba8696b507477cab5f060ccd9b2b

res/res_http_websocket.c

index c2d1b1850680299fef85b9d497a32aebd66b1280..b6baa3cf92947b92c67a7623cd409c95844457ff 100644 (file)
@@ -207,7 +207,6 @@ int AST_OPTIONAL_API_NAME(ast_websocket_server_add_protocol)(struct ast_websocke
 
        protocol = ast_websocket_sub_protocol_alloc(name);
        if (!protocol) {
-               ao2_unlock(server->protocols);
                return -1;
        }
        protocol->session_established = callback;
@@ -824,6 +823,7 @@ int AST_OPTIONAL_API_NAME(ast_websocket_uri_cb)(struct ast_tcptls_session_instan
                    && protocol_handler->session_attempted(ser, get_vars, headers)) {
                        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;
                }