From 357b275239d2e461cd2a3dbaf4d091932824abd4 Mon Sep 17 00:00:00 2001 From: "David M. Lee" <dlee@digium.com> Date: Mon, 5 Aug 2013 14:35:00 +0000 Subject: [PATCH] Fix res_ari_asterisk load issue The new res_ari_asterisk.so module presents several config options from asterisk main. Unfortunately, they aren't exported, so the module won't load on Linux. This patch renames the variables, adding the ast_ prefix so they will be exported. Review: https://reviewboard.asterisk.org/r/2737 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396166 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/options.h | 8 +++---- main/asterisk.c | 44 ++++++++++++++++++------------------- main/channel.c | 2 +- main/cli.c | 12 +++++----- main/manager.c | 6 ++--- main/pbx.c | 12 +++++----- res/ari/resource_asterisk.c | 14 ++++++------ utils/extconf.c | 6 ++--- 8 files changed, 52 insertions(+), 52 deletions(-) diff --git a/include/asterisk/options.h b/include/asterisk/options.h index 73fa42bcec..2761415b80 100644 --- a/include/asterisk/options.h +++ b/include/asterisk/options.h @@ -154,15 +154,15 @@ enum ast_compat_flags { extern struct ast_flags ast_compat; extern int option_verbose; -extern int option_maxfiles; /*!< Max number of open file handles (files, sockets) */ +extern int ast_option_maxfiles; /*!< Max number of open file handles (files, sockets) */ extern int option_debug; /*!< Debugging */ -extern int option_maxcalls; /*!< Maximum number of simultaneous channels */ +extern int ast_option_maxcalls; /*!< Maximum number of simultaneous channels */ extern unsigned int option_dtmfminduration; /*!< Minimum duration of DTMF (channel.c) in ms */ -extern double option_maxload; +extern double ast_option_maxload; #if defined(HAVE_SYSINFO) extern long option_minmemfree; /*!< Minimum amount of free system memory - stop accepting calls if free memory falls below this watermark */ #endif -extern char defaultlanguage[]; +extern char ast_defaultlanguage[]; extern struct timeval ast_startuptime; extern struct timeval ast_lastreloadtime; diff --git a/main/asterisk.c b/main/asterisk.c index 9bd0d858c5..beed010831 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -319,9 +319,9 @@ struct ast_flags ast_compat = { 0 }; int option_verbose; /*!< Verbosity level */ int option_debug; /*!< Debug level */ -double option_maxload; /*!< Max load avg on system */ -int option_maxcalls; /*!< Max number of active calls */ -int option_maxfiles; /*!< Max number of open file handles (files, sockets) */ +double ast_option_maxload; /*!< Max load avg on system */ +int ast_option_maxcalls; /*!< Max number of active calls */ +int ast_option_maxfiles; /*!< Max number of open file handles (files, sockets) */ unsigned int option_dtmfminduration; /*!< Minimum duration of DTMF. */ #if defined(HAVE_SYSINFO) long option_minmemfree; /*!< Minimum amount of free system memory - stop accepting calls if free memory falls below this watermark */ @@ -364,7 +364,7 @@ static char *remotehostname; struct console consoles[AST_MAX_CONNECTS]; -char defaultlanguage[MAX_LANGUAGE] = DEFAULT_LANGUAGE; +char ast_defaultlanguage[MAX_LANGUAGE] = DEFAULT_LANGUAGE; static int ast_el_add_history(char *); static int ast_el_read_history(char *); @@ -599,17 +599,17 @@ static char *handle_show_settings(struct ast_cli_entry *e, int cmd, struct ast_c ast_cli(a->fd, "-----------------\n"); ast_cli(a->fd, " Version: %s\n", ast_get_version()); ast_cli(a->fd, " Build Options: %s\n", S_OR(AST_BUILDOPTS, "(none)")); - if (option_maxcalls) - ast_cli(a->fd, " Maximum calls: %d (Current %d)\n", option_maxcalls, ast_active_channels()); + if (ast_option_maxcalls) + ast_cli(a->fd, " Maximum calls: %d (Current %d)\n", ast_option_maxcalls, ast_active_channels()); else ast_cli(a->fd, " Maximum calls: Not set\n"); - if (option_maxfiles) - ast_cli(a->fd, " Maximum open file handles: %d\n", option_maxfiles); + if (ast_option_maxfiles) + ast_cli(a->fd, " Maximum open file handles: %d\n", ast_option_maxfiles); else ast_cli(a->fd, " Maximum open file handles: Not set\n"); ast_cli(a->fd, " Verbosity: %d\n", option_verbose); ast_cli(a->fd, " Debug level: %d\n", option_debug); - ast_cli(a->fd, " Maximum load average: %lf\n", option_maxload); + ast_cli(a->fd, " Maximum load average: %lf\n", ast_option_maxload); #if defined(HAVE_SYSINFO) ast_cli(a->fd, " Minimum free memory: %ld MB\n", option_minmemfree); #endif @@ -624,7 +624,7 @@ static char *handle_show_settings(struct ast_cli_entry *e, int cmd, struct ast_c ast_cli(a->fd, " System: %s/%s built by %s on %s %s\n", ast_build_os, ast_build_kernel, ast_build_user, ast_build_machine, ast_build_date); ast_cli(a->fd, " System name: %s\n", ast_config_AST_SYSTEM_NAME); ast_cli(a->fd, " Entity ID: %s\n", eid_str); - ast_cli(a->fd, " Default language: %s\n", defaultlanguage); + ast_cli(a->fd, " Default language: %s\n", ast_defaultlanguage); ast_cli(a->fd, " Language prefix: %s\n", ast_language_is_prefix ? "Enabled" : "Disabled"); ast_cli(a->fd, " User name and group: %s/%s\n", ast_config_AST_RUN_USER, ast_config_AST_RUN_GROUP); ast_cli(a->fd, " Executable includes: %s\n", ast_test_flag(&ast_options, AST_OPT_FLAG_EXEC_INCLUDES) ? "Enabled" : "Disabled"); @@ -3402,22 +3402,22 @@ static void ast_readconfig(void) option_dtmfminduration = AST_MIN_DTMF_DURATION; } } else if (!strcasecmp(v->name, "maxcalls")) { - if ((sscanf(v->value, "%30d", &option_maxcalls) != 1) || (option_maxcalls < 0)) { - option_maxcalls = 0; + if ((sscanf(v->value, "%30d", &ast_option_maxcalls) != 1) || (ast_option_maxcalls < 0)) { + ast_option_maxcalls = 0; } } else if (!strcasecmp(v->name, "maxload")) { double test[1]; if (getloadavg(test, 1) == -1) { ast_log(LOG_ERROR, "Cannot obtain load average on this system. 'maxload' option disabled.\n"); - option_maxload = 0.0; - } else if ((sscanf(v->value, "%30lf", &option_maxload) != 1) || (option_maxload < 0.0)) { - option_maxload = 0.0; + ast_option_maxload = 0.0; + } else if ((sscanf(v->value, "%30lf", &ast_option_maxload) != 1) || (ast_option_maxload < 0.0)) { + ast_option_maxload = 0.0; } /* Set the maximum amount of open files */ } else if (!strcasecmp(v->name, "maxfiles")) { - option_maxfiles = atoi(v->value); - set_ulimit(option_maxfiles); + ast_option_maxfiles = atoi(v->value); + set_ulimit(ast_option_maxfiles); /* What user to run as */ } else if (!strcasecmp(v->name, "runuser")) { ast_copy_string(cfg_paths.run_user, v->value, sizeof(cfg_paths.run_user)); @@ -3440,7 +3440,7 @@ static void ast_readconfig(void) } else if (!strcasecmp(v->name, "languageprefix")) { ast_language_is_prefix = ast_true(v->value); } else if (!strcasecmp(v->name, "defaultlanguage")) { - ast_copy_string(defaultlanguage, v->value, MAX_LANGUAGE); + ast_copy_string(ast_defaultlanguage, v->value, MAX_LANGUAGE); } else if (!strcasecmp(v->name, "lockmode")) { if (!strcasecmp(v->value, "lockfile")) { ast_set_lock_type(AST_LOCK_TYPE_LOCKFILE); @@ -3725,13 +3725,13 @@ int main(int argc, char *argv[]) ast_set_flag(&ast_options, AST_OPT_FLAG_INIT_KEYS); break; case 'L': - if ((sscanf(optarg, "%30lf", &option_maxload) != 1) || (option_maxload < 0.0)) { - option_maxload = 0.0; + if ((sscanf(optarg, "%30lf", &ast_option_maxload) != 1) || (ast_option_maxload < 0.0)) { + ast_option_maxload = 0.0; } break; case 'M': - if ((sscanf(optarg, "%30d", &option_maxcalls) != 1) || (option_maxcalls < 0)) { - option_maxcalls = 0; + if ((sscanf(optarg, "%30d", &ast_option_maxcalls) != 1) || (ast_option_maxcalls < 0)) { + ast_option_maxcalls = 0; } break; case 'm': diff --git a/main/channel.c b/main/channel.c index 95d0a5dccd..f1d98de126 100644 --- a/main/channel.c +++ b/main/channel.c @@ -992,7 +992,7 @@ __ast_channel_alloc_ap(int needqueue, int state, const char *cid_num, const char AST_LIST_HEAD_INIT_NOLOCK(ast_channel_autochans(tmp)); - ast_channel_language_set(tmp, defaultlanguage); + ast_channel_language_set(tmp, ast_defaultlanguage); ast_channel_tech_set(tmp, &null_tech); diff --git a/main/cli.c b/main/cli.c index 6ca0737ab5..dd9f3bcd07 100644 --- a/main/cli.c +++ b/main/cli.c @@ -854,10 +854,10 @@ static char *handle_showcalls(struct ast_cli_entry *e, int cmd, struct ast_cli_a } else return CLI_SHOWUSAGE; - if (option_maxcalls) { + if (ast_option_maxcalls) { ast_cli(a->fd, "%d of %d max active call%s (%5.2f%% of capacity)\n", - ast_active_calls(), option_maxcalls, ESS(ast_active_calls()), - ((double)ast_active_calls() / (double)option_maxcalls) * 100.0); + ast_active_calls(), ast_option_maxcalls, ESS(ast_active_calls()), + ((double)ast_active_calls() / (double)ast_option_maxcalls) * 100.0); } else { ast_cli(a->fd, "%d active call%s\n", ast_active_calls(), ESS(ast_active_calls())); } @@ -982,10 +982,10 @@ static char *handle_chanlist(struct ast_cli_entry *e, int cmd, struct ast_cli_ar if (!concise) { numchans = ast_active_channels(); ast_cli(a->fd, "%d active channel%s\n", numchans, ESS(numchans)); - if (option_maxcalls) + if (ast_option_maxcalls) ast_cli(a->fd, "%d of %d max active call%s (%5.2f%% of capacity)\n", - ast_active_calls(), option_maxcalls, ESS(ast_active_calls()), - ((double)ast_active_calls() / (double)option_maxcalls) * 100.0); + ast_active_calls(), ast_option_maxcalls, ESS(ast_active_calls()), + ((double)ast_active_calls() / (double)ast_option_maxcalls) * 100.0); else ast_cli(a->fd, "%d active call%s\n", ast_active_calls(), ESS(ast_active_calls())); diff --git a/main/manager.c b/main/manager.c index 19f1e94c24..a17646f0de 100644 --- a/main/manager.c +++ b/main/manager.c @@ -5212,11 +5212,11 @@ static int action_coresettings(struct mansession *s, const struct message *m) AMI_VERSION, ast_get_version(), ast_config_AST_SYSTEM_NAME, - option_maxcalls, - option_maxload, + ast_option_maxcalls, + ast_option_maxload, ast_config_AST_RUN_USER, ast_config_AST_RUN_GROUP, - option_maxfiles, + ast_option_maxfiles, AST_CLI_YESNO(ast_realtime_enabled()), AST_CLI_YESNO(ast_cdr_is_enabled()), AST_CLI_YESNO(check_webmanager_enabled()) diff --git a/main/pbx.c b/main/pbx.c index 0f0f5114a1..9ef2f1ed0c 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -6317,16 +6317,16 @@ static int increase_call_count(const struct ast_channel *c) #endif ast_mutex_lock(&maxcalllock); - if (option_maxcalls) { - if (countcalls >= option_maxcalls) { - ast_log(LOG_WARNING, "Maximum call limit of %d calls exceeded by '%s'!\n", option_maxcalls, ast_channel_name(c)); + if (ast_option_maxcalls) { + if (countcalls >= ast_option_maxcalls) { + ast_log(LOG_WARNING, "Maximum call limit of %d calls exceeded by '%s'!\n", ast_option_maxcalls, ast_channel_name(c)); failed = -1; } } - if (option_maxload) { + if (ast_option_maxload) { getloadavg(&curloadavg, 1); - if (curloadavg >= option_maxload) { - ast_log(LOG_WARNING, "Maximum loadavg limit of %f load exceeded by '%s' (currently %f)!\n", option_maxload, ast_channel_name(c), curloadavg); + if (curloadavg >= ast_option_maxload) { + ast_log(LOG_WARNING, "Maximum loadavg limit of %f load exceeded by '%s' (currently %f)!\n", ast_option_maxload, ast_channel_name(c), curloadavg); failed = -1; } } diff --git a/res/ari/resource_asterisk.c b/res/ari/resource_asterisk.c index 88f8d35cdd..6f2eb80272 100644 --- a/res/ari/resource_asterisk.c +++ b/res/ari/resource_asterisk.c @@ -99,7 +99,7 @@ void ast_ari_get_asterisk_info(struct ast_variable *headers, " s: { s: s, s: s } }", "name", ast_config_AST_SYSTEM_NAME, - "default_language", defaultlanguage, + "default_language", ast_defaultlanguage, "setid", "user", ast_config_AST_RUN_USER, @@ -107,19 +107,19 @@ void ast_ari_get_asterisk_info(struct ast_variable *headers, res |= ast_json_object_set(json, "config", config); - if (option_maxcalls) { + if (ast_option_maxcalls) { res |= ast_json_object_set(config, "max_channels", - ast_json_integer_create(option_maxcalls)); + ast_json_integer_create(ast_option_maxcalls)); } - if (option_maxfiles) { + if (ast_option_maxfiles) { res |= ast_json_object_set(config, "max_open_files", - ast_json_integer_create(option_maxfiles)); + ast_json_integer_create(ast_option_maxfiles)); } - if (option_maxload) { + if (ast_option_maxload) { res |= ast_json_object_set(config, "max_load", - ast_json_real_create(option_maxload)); + ast_json_real_create(ast_option_maxload)); } } diff --git a/utils/extconf.c b/utils/extconf.c index c679c4c3e3..be32163129 100644 --- a/utils/extconf.c +++ b/utils/extconf.c @@ -1894,9 +1894,9 @@ struct ast_flags ast_options = { AST_DEFAULT_OPTIONS }; extern int option_verbose; extern int option_debug; /*!< Debugging */ -extern int option_maxcalls; /*!< Maximum number of simultaneous channels */ -extern double option_maxload; -extern char defaultlanguage[]; +extern int ast_option_maxcalls; /*!< Maximum number of simultaneous channels */ +extern double ast_option_maxload; +extern char ast_defaultlanguage[]; extern pid_t ast_mainpid; -- GitLab