mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	Merge "res_ari: Add "module loaded" check to ari stubs"
This commit is contained in:
		| @@ -268,4 +268,14 @@ void ast_ari_response_created(struct ast_ari_response *response, | ||||
|  */ | ||||
| void ast_ari_response_alloc_failed(struct ast_ari_response *response); | ||||
|  | ||||
| /*! \brief Determines whether the res_ari module is loaded */ | ||||
| #define CHECK_ARI_MODULE_LOADED()				\ | ||||
| 	do {							\ | ||||
| 		if (!ast_module_check("res_ari.so")		\ | ||||
| 			|| !ast_ari_oom_json()) {	\ | ||||
| 			return AST_MODULE_LOAD_DECLINE;		\ | ||||
| 		}						\ | ||||
| 	} while(0) | ||||
|  | ||||
|  | ||||
| #endif /* _ASTERISK_ARI_H */ | ||||
|   | ||||
| @@ -500,6 +500,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&applications); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -1221,6 +1221,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&asterisk); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -1547,6 +1547,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&bridges); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -2851,6 +2851,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&channels); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -331,6 +331,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&deviceStates); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -455,6 +455,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&endpoints); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -430,28 +430,35 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
| 	struct ast_websocket_protocol *protocol; | ||||
|  | ||||
| 	if (ast_ari_websocket_events_event_websocket_init() == -1) { | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
| 	/* This is scoped to not conflict with CHECK_ARI_MODULE_LOADED */ | ||||
| 	{ | ||||
| 		struct ast_websocket_protocol *protocol; | ||||
|  | ||||
| 		if (ast_ari_websocket_events_event_websocket_init() == -1) { | ||||
| 			return AST_MODULE_LOAD_DECLINE; | ||||
| 		} | ||||
|  | ||||
| 		events.ws_server = ast_websocket_server_create(); | ||||
| 		if (!events.ws_server) { | ||||
| 			ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 			return AST_MODULE_LOAD_DECLINE; | ||||
| 		} | ||||
|  | ||||
| 		protocol = ast_websocket_sub_protocol_alloc("ari"); | ||||
| 		if (!protocol) { | ||||
| 			ao2_ref(events.ws_server, -1); | ||||
| 			events.ws_server = NULL; | ||||
| 			ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 			return AST_MODULE_LOAD_DECLINE; | ||||
| 		} | ||||
| 		protocol->session_attempted = ast_ari_events_event_websocket_ws_attempted_cb; | ||||
| 		protocol->session_established = ast_ari_events_event_websocket_ws_established_cb; | ||||
| 		res |= ast_websocket_server_add_protocol2(events.ws_server, protocol); | ||||
| 	} | ||||
|  | ||||
| 	events.ws_server = ast_websocket_server_create(); | ||||
| 	if (!events.ws_server) { | ||||
| 		ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 	} | ||||
|  | ||||
| 	protocol = ast_websocket_sub_protocol_alloc("ari"); | ||||
| 	if (!protocol) { | ||||
| 		ao2_ref(events.ws_server, -1); | ||||
| 		events.ws_server = NULL; | ||||
| 		ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 	} | ||||
| 	protocol->session_attempted = ast_ari_events_event_websocket_ws_attempted_cb; | ||||
| 	protocol->session_established = ast_ari_events_event_websocket_ws_established_cb; | ||||
| 	res |= ast_websocket_server_add_protocol2(events.ws_server, protocol); | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&events); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -337,6 +337,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&mailboxes); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -289,6 +289,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&playbacks); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -873,6 +873,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&recordings); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -219,6 +219,10 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&sounds); | ||||
| 	if (res) { | ||||
|   | ||||
| @@ -273,36 +273,43 @@ static int unload_module(void) | ||||
| static int load_module(void) | ||||
| { | ||||
| 	int res = 0; | ||||
|  | ||||
| 	CHECK_ARI_MODULE_LOADED(); | ||||
|  | ||||
| {{#apis}} | ||||
| {{#operations}} | ||||
| {{#has_websocket}} | ||||
| 	struct ast_websocket_protocol *protocol; | ||||
| 	/* This is scoped to not conflict with CHECK_ARI_MODULE_LOADED */ | ||||
| 	{ | ||||
| 		struct ast_websocket_protocol *protocol; | ||||
|  | ||||
| 	if (ast_ari_websocket_{{c_name}}_{{c_nickname}}_init() == -1) { | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 	} | ||||
| 		if (ast_ari_websocket_{{c_name}}_{{c_nickname}}_init() == -1) { | ||||
| 			return AST_MODULE_LOAD_DECLINE; | ||||
| 		} | ||||
|  | ||||
| 	{{full_name}}.ws_server = ast_websocket_server_create(); | ||||
| 	if (!{{full_name}}.ws_server) { | ||||
| 		ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 	} | ||||
| 		{{full_name}}.ws_server = ast_websocket_server_create(); | ||||
| 		if (!{{full_name}}.ws_server) { | ||||
| 			ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 			return AST_MODULE_LOAD_DECLINE; | ||||
| 		} | ||||
|  | ||||
| 	protocol = ast_websocket_sub_protocol_alloc("{{websocket_protocol}}"); | ||||
| 	if (!protocol) { | ||||
| 		ao2_ref({{full_name}}.ws_server, -1); | ||||
| 		{{full_name}}.ws_server = NULL; | ||||
| 		ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 	} | ||||
| 	protocol->session_attempted = ast_ari_{{c_name}}_{{c_nickname}}_ws_attempted_cb; | ||||
| 	protocol->session_established = ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb; | ||||
| 		protocol = ast_websocket_sub_protocol_alloc("{{websocket_protocol}}"); | ||||
| 		if (!protocol) { | ||||
| 			ao2_ref({{full_name}}.ws_server, -1); | ||||
| 			{{full_name}}.ws_server = NULL; | ||||
| 			ast_ari_websocket_events_event_websocket_dtor(); | ||||
| 			return AST_MODULE_LOAD_DECLINE; | ||||
| 		} | ||||
| 		protocol->session_attempted = ast_ari_{{c_name}}_{{c_nickname}}_ws_attempted_cb; | ||||
| 		protocol->session_established = ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb; | ||||
| {{/has_websocket}} | ||||
| {{#is_websocket}} | ||||
| 	res |= ast_websocket_server_add_protocol2({{full_name}}.ws_server, protocol); | ||||
| 		res |= ast_websocket_server_add_protocol2({{full_name}}.ws_server, protocol); | ||||
| 	} | ||||
| {{/is_websocket}} | ||||
| {{/operations}} | ||||
| {{/apis}} | ||||
|  | ||||
| 	stasis_app_ref(); | ||||
| 	res |= ast_ari_add_handler(&{{root_full_name}}); | ||||
| 	if (res) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user