|
|
|
@ -3141,8 +3141,26 @@ int main(int argc, char *argv[])
|
|
|
|
|
if (getenv("HOME"))
|
|
|
|
|
snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
|
|
|
|
|
/* Check for options */
|
|
|
|
|
while ((c = getopt(argc, argv, "mtThfFdvVqprRgciInx:U:G:C:L:M:e:s:WB")) != -1) {
|
|
|
|
|
while ((c = getopt(argc, argv, "BC:cde:FfG:ghIiL:M:mnpqRrs:TtU:VvWx:")) != -1) {
|
|
|
|
|
/*!\note Please keep the ordering here to alphabetical, capital letters
|
|
|
|
|
* first. This will make it easier in the future to select unused
|
|
|
|
|
* option flags for new features. */
|
|
|
|
|
switch (c) {
|
|
|
|
|
case 'B': /* Force black background */
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
|
|
|
|
|
ast_clear_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
|
|
|
|
|
break;
|
|
|
|
|
case 'C':
|
|
|
|
|
ast_copy_string(cfg_paths.config_file, optarg, sizeof(cfg_paths.config_file));
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_OVERRIDE_CONFIG);
|
|
|
|
|
break;
|
|
|
|
|
case 'c':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_CONSOLE);
|
|
|
|
|
break;
|
|
|
|
|
case 'd':
|
|
|
|
|
option_debug++;
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
|
|
|
|
|
break;
|
|
|
|
|
#if defined(HAVE_SYSINFO)
|
|
|
|
|
case 'e':
|
|
|
|
|
if ((sscanf(&optarg[1], "%30ld", &option_minmemfree) != 1) || (option_minmemfree < 0)) {
|
|
|
|
@ -3158,88 +3176,75 @@ int main(int argc, char *argv[])
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
|
|
|
|
|
break;
|
|
|
|
|
#endif
|
|
|
|
|
case 'd':
|
|
|
|
|
option_debug++;
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
|
|
|
|
|
break;
|
|
|
|
|
case 'c':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_CONSOLE);
|
|
|
|
|
case 'G':
|
|
|
|
|
rungroup = ast_strdupa(optarg);
|
|
|
|
|
break;
|
|
|
|
|
case 'n':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_COLOR);
|
|
|
|
|
case 'g':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_DUMP_CORE);
|
|
|
|
|
break;
|
|
|
|
|
case 'r':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE);
|
|
|
|
|
case 'h':
|
|
|
|
|
show_cli_help();
|
|
|
|
|
exit(0);
|
|
|
|
|
case 'I':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_INTERNAL_TIMING);
|
|
|
|
|
break;
|
|
|
|
|
case 'R':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE | AST_OPT_FLAG_RECONNECT);
|
|
|
|
|
case 'i':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_INIT_KEYS);
|
|
|
|
|
break;
|
|
|
|
|
case 'p':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_HIGH_PRIORITY);
|
|
|
|
|
case 'L':
|
|
|
|
|
if ((sscanf(optarg, "%30lf", &option_maxload) != 1) || (option_maxload < 0.0)) {
|
|
|
|
|
option_maxload = 0.0;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'v':
|
|
|
|
|
option_verbose++;
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
|
|
|
|
|
case 'M':
|
|
|
|
|
if ((sscanf(optarg, "%30d", &option_maxcalls) != 1) || (option_maxcalls < 0)) {
|
|
|
|
|
option_maxcalls = 0;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 'm':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_MUTE);
|
|
|
|
|
break;
|
|
|
|
|
case 'M':
|
|
|
|
|
if ((sscanf(optarg, "%30d", &option_maxcalls) != 1) || (option_maxcalls < 0))
|
|
|
|
|
option_maxcalls = 0;
|
|
|
|
|
case 'n':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_COLOR);
|
|
|
|
|
break;
|
|
|
|
|
case 'L':
|
|
|
|
|
if ((sscanf(optarg, "%30lf", &option_maxload) != 1) || (option_maxload < 0.0))
|
|
|
|
|
option_maxload = 0.0;
|
|
|
|
|
case 'p':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_HIGH_PRIORITY);
|
|
|
|
|
break;
|
|
|
|
|
case 'q':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_QUIET);
|
|
|
|
|
break;
|
|
|
|
|
case 't':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_CACHE_RECORD_FILES);
|
|
|
|
|
break;
|
|
|
|
|
case 'T':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_TIMESTAMP);
|
|
|
|
|
case 'R':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE | AST_OPT_FLAG_RECONNECT);
|
|
|
|
|
break;
|
|
|
|
|
case 'x':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC);
|
|
|
|
|
xarg = ast_strdupa(optarg);
|
|
|
|
|
case 'r':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE);
|
|
|
|
|
break;
|
|
|
|
|
case 'C':
|
|
|
|
|
ast_copy_string(cfg_paths.config_file, optarg, sizeof(cfg_paths.config_file));
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_OVERRIDE_CONFIG);
|
|
|
|
|
case 's':
|
|
|
|
|
remotesock = ast_strdupa(optarg);
|
|
|
|
|
break;
|
|
|
|
|
case 'I':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_INTERNAL_TIMING);
|
|
|
|
|
case 'T':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_TIMESTAMP);
|
|
|
|
|
break;
|
|
|
|
|
case 'i':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_INIT_KEYS);
|
|
|
|
|
case 't':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_CACHE_RECORD_FILES);
|
|
|
|
|
break;
|
|
|
|
|
case 'g':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_DUMP_CORE);
|
|
|
|
|
case 'U':
|
|
|
|
|
runuser = ast_strdupa(optarg);
|
|
|
|
|
break;
|
|
|
|
|
case 'h':
|
|
|
|
|
show_cli_help();
|
|
|
|
|
exit(0);
|
|
|
|
|
case 'V':
|
|
|
|
|
show_version();
|
|
|
|
|
exit(0);
|
|
|
|
|
case 'U':
|
|
|
|
|
runuser = ast_strdupa(optarg);
|
|
|
|
|
break;
|
|
|
|
|
case 'G':
|
|
|
|
|
rungroup = ast_strdupa(optarg);
|
|
|
|
|
break;
|
|
|
|
|
case 's':
|
|
|
|
|
remotesock = ast_strdupa(optarg);
|
|
|
|
|
case 'v':
|
|
|
|
|
option_verbose++;
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
|
|
|
|
|
break;
|
|
|
|
|
case 'W': /* White background */
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
|
|
|
|
|
ast_clear_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
|
|
|
|
|
break;
|
|
|
|
|
case 'B': /* Force black background */
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
|
|
|
|
|
ast_clear_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
|
|
|
|
|
case 'x':
|
|
|
|
|
ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC);
|
|
|
|
|
xarg = ast_strdupa(optarg);
|
|
|
|
|
break;
|
|
|
|
|
case '?':
|
|
|
|
|
exit(1);
|
|
|
|
|