mirror of
https://github.com/asterisk/asterisk.git
synced 2026-06-27 10:54:50 -07:00
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
This commit is contained in:
@@ -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;
|
||||
|
||||
+22
-22
@@ -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':
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
|
||||
+6
-6
@@ -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()));
|
||||
|
||||
|
||||
+3
-3
@@ -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())
|
||||
|
||||
+6
-6
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user