Don't read history on -rx commands.
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 5 Nov 2008 22:19:18 +0000 (22:19 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 5 Nov 2008 22:19:18 +0000 (22:19 +0000)
(Closes issue #13571)
Reported by: tzafrir
Patch '0001-no-need-for-history-on-asterisk-rx.patch' uploaded by tzafrir.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@154922 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/asterisk.c

index 37c84bd..2245434 100644 (file)
@@ -1374,7 +1374,7 @@ static void quit_handler(int num, int niceness, int safeshutdown, int restart)
                if (niceness)
                        ast_module_shutdown();
        }
-       if (ast_opt_console || ast_opt_remote) {
+       if (ast_opt_console || (ast_opt_remote && !ast_opt_exec)) {
                if (getenv("HOME")) 
                        snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
                if (!ast_strlen_zero(filename))
@@ -2474,17 +2474,6 @@ static void ast_remotecontrol(char *data)
                else 
                        printf("log and verbose output currently muted ('logger mute' to unmute)\n");
        }
-       ast_verbose("Connected to Asterisk %s currently running on %s (pid = %d)\n", version, hostname, pid);
-       remotehostname = hostname;
-       if (getenv("HOME")) 
-               snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
-       if (el_hist == NULL || el == NULL)
-               ast_el_initialize();
-
-       el_set(el, EL_GETCFN, ast_el_read_char);
-
-       if (!ast_strlen_zero(filename))
-               ast_el_read_history(filename);
 
        if (ast_opt_exec && data) {  /* hack to print output then exit if asterisk -rx is used */
                struct pollfd fds;
@@ -2523,6 +2512,19 @@ static void ast_remotecontrol(char *data)
                }
                return;
        }
+
+       ast_verbose("Connected to Asterisk %s currently running on %s (pid = %d)\n", version, hostname, pid);
+       remotehostname = hostname;
+       if (getenv("HOME")) 
+               snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
+       if (el_hist == NULL || el == NULL)
+               ast_el_initialize();
+
+       el_set(el, EL_GETCFN, ast_el_read_char);
+
+       if (!ast_strlen_zero(filename))
+               ast_el_read_history(filename);
+
        for (;;) {
                ebuf = (char *)el_gets(el, &num);