From: Joshua Colp Date: Thu, 24 Oct 2019 10:21:31 +0000 (-0300) Subject: res_ari_events: Add module reference when a WebSocket is open. X-Git-Tag: 16.7.0-rc1~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e22e1213eb0ed1baff0734dcfcc8f23e355da16;p=thirdparty%2Fasterisk.git res_ari_events: Add module reference when a WebSocket is open. This change ensures that the module isn't unloaded when a WebSocket is open. Previously it was possible to unload the module manually or during shutdown which could cause a crash when any active WebSockets were terminated. ASTERISK-28585 Change-Id: I85c71ab112f99875b586419a34c08c8b34c14c5c --- diff --git a/res/res_ari_events.c b/res/res_ari_events.c index c8f28f97b1..1c4655f827 100644 --- a/res/res_ari_events.c +++ b/res/res_ari_events.c @@ -150,6 +150,8 @@ static void ast_ari_events_event_websocket_ws_established_cb(struct ast_websocke RAII_VAR(struct ast_websocket *, s, ws_session, ast_websocket_unref); RAII_VAR(struct ast_ari_websocket_session *, session, NULL, ao2_cleanup); + SCOPED_MODULE_USE(ast_module_info->self); + response = ast_calloc(1, sizeof(*response)); if (!response) { ast_log(LOG_ERROR, "Failed to create response.\n"); diff --git a/rest-api-templates/res_ari_resource.c.mustache b/rest-api-templates/res_ari_resource.c.mustache index 85948fba16..e320f19fc3 100644 --- a/rest-api-templates/res_ari_resource.c.mustache +++ b/rest-api-templates/res_ari_resource.c.mustache @@ -211,6 +211,8 @@ static void ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb(struct ast_webso struct ast_variable *path_vars = NULL; {{/has_path_parameters}} + SCOPED_MODULE_USE(ast_module_info->self); + {{#has_parameters}} response = ast_calloc(1, sizeof(*response)); if (!response) {