Redesigned 'optional API' support.

This patch provides a new implementation of the optional API support defined
in asterisk/optional_api.h; this new version provides solves compatibility
issues with the use of linker version scripts for suppressing global symbols.
In addition, there is now a functional (and tested!) implementation for Mac OS/X,
so module writers no longer need to use special tests before calling optional
API functions. All future implementations must provide these same semantics,
so that module writers can rely on them.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2009-06-15 16:07:23 +00:00
parent d224f78dd5
commit 6c5987811c
19 changed files with 289 additions and 297 deletions

View File

@@ -647,9 +647,7 @@ struct agi_command gosub_agi_command =
static int unload_module(void)
{
if (ast_agi_unregister) {
ast_agi_unregister(ast_module_info->self, &gosub_agi_command);
}
ast_agi_unregister(ast_module_info->self, &gosub_agi_command);
ast_unregister_application(app_return);
ast_unregister_application(app_pop);
@@ -663,9 +661,7 @@ static int unload_module(void)
static int load_module(void)
{
if (ast_agi_register) {
ast_agi_register(ast_module_info->self, &gosub_agi_command);
}
ast_agi_register(ast_module_info->self, &gosub_agi_command);
ast_register_application_xml(app_pop, pop_exec);
ast_register_application_xml(app_return, return_exec);