res = ast_custom_function_register_escalating(&hook_function, AST_CFE_BOTH);
+ if (!res) {
+ /* For Optional API. */
+ ast_module_shutdown_ref(ast_module_info->self);
+ }
+
return res ? AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS;
}
unload_module();
return AST_MODULE_LOAD_DECLINE;
}
+
+ /* For Optional API. */
+ ast_module_shutdown_ref(ast_module_info->self);
+
return AST_MODULE_LOAD_SUCCESS;
}
ast_http_uri_link(&websocketuri);
websocket_add_protocol_internal("echo", websocket_echo_callback);
+ /* For Optional API. */
+ ast_module_shutdown_ref(ast_module_info->self);
+
return 0;
}
ast_manager_register_xml("PauseMonitor", EVENT_FLAG_CALL, pause_monitor_action);
ast_manager_register_xml("UnpauseMonitor", EVENT_FLAG_CALL, unpause_monitor_action);
+ /* For Optional API. */
+ ast_module_shutdown_ref(ast_module_info->self);
+
return AST_MODULE_LOAD_SUCCESS;
}
}
ast_cli_register_multiple(cli_pktccops, sizeof(cli_pktccops) / sizeof(struct ast_cli_entry));
restart_pktc_thread();
+
+ /* For Optional API. */
+ ast_module_shutdown_ref(ast_module_info->self);
+
return 0;
}
}
smdi_loaded = 0;
+
+ /* For Optional API. */
+ ast_module_shutdown_ref(ast_module_info->self);
+
return 0;
}
return AST_MODULE_LOAD_DECLINE;
}
+ /* For Optional API. */
+ ast_module_shutdown_ref(ast_module_info->self);
+
return AST_MODULE_LOAD_SUCCESS;
}