{
struct websocket_protocol *protocol;
+ if (!protocols) {
+ return -1;
+ }
+
ao2_lock(protocols);
/* Ensure a second protocol handler is not registered for the same protocol */
{
struct websocket_protocol *protocol;
+ if (!protocols) {
+ return -1;
+ }
+
if (!(protocol = ao2_find(protocols, name, OBJ_KEY))) {
return -1;
}
ast_websocket_remove_protocol("echo", websocket_echo_callback);
ast_http_uri_unlink(&websocketuri);
ao2_ref(protocols, -1);
+ protocols = NULL;
return 0;
}
/* ironic */
return AST_MODULE_LOAD_FAILURE;
}
- r |= ast_websocket_add_protocol(ws_protocol, websocket_callback);
+ r |= ast_websocket_add_protocol(ws_protocol, websocket_callback);
return r;
}
ast_json_unref(oom_json);
oom_json = NULL;
- r |= ast_websocket_remove_protocol(ws_protocol, websocket_callback);
+ r |= ast_websocket_remove_protocol(ws_protocol, websocket_callback);
return r;
}
AST_MODULE_INFO(ASTERISK_GPL_KEY, 0, "Stasis HTTP bindings",
.load = load_module,
.unload = unload_module,
- .nonoptreq = "app_stasis,res_http_websocket"
+ .nonoptreq = "app_stasis,res_http_websocket",
+ .load_pri = AST_MODPRI_APP_DEPEND,
);