aboutsummaryrefslogtreecommitdiffstats
path: root/asterisk.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-06-23 16:40:12 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-06-23 16:40:12 +0000
commit13bea9924b9582a1d81635818922d212455070c4 (patch)
treef9f1d1d3ace27d5b1c4acbfdaac1e4144a264259 /asterisk.c
parent6a2b7c5a9a2b066305966bddfa54ef03013cbfc5 (diff)
Little fix
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1112 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'asterisk.c')
-rwxr-xr-xasterisk.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/asterisk.c b/asterisk.c
index a00c990d5..98af3cc91 100755
--- a/asterisk.c
+++ b/asterisk.c
@@ -673,10 +673,12 @@ static int ast_el_read_char(EditLine *el, char *cp)
for (;;) {
FD_ZERO(&rfds);
FD_SET(ast_consock, &rfds);
- FD_SET(STDIN_FILENO, &rfds);
max = ast_consock;
- if (STDIN_FILENO > max)
- max = STDIN_FILENO;
+ if (!option_exec) {
+ FD_SET(STDIN_FILENO, &rfds);
+ if (STDIN_FILENO > max)
+ max = STDIN_FILENO;
+ }
res = ast_select(max+1, &rfds, NULL, NULL, NULL);
if (res < 0) {
if (errno == EINTR)
@@ -702,7 +704,7 @@ static int ast_el_read_char(EditLine *el, char *cp)
buf[res] = '\0';
- if (!lastpos)
+ if (!option_exec && !lastpos)
write(STDOUT_FILENO, "\r", 1);
write(STDOUT_FILENO, buf, res);
if ((buf[res-1] == '\n') || (buf[res-2] == '\n')) {
@@ -1023,12 +1025,14 @@ static void ast_remotecontrol(char * data)
#if 0
ast_cli_register(&astshutdown);
#endif
+ if (option_exec && data) { /* hack to print output then exit if asterisk -rx is used */
+ char tempchar;
+ ast_el_read_char(el, &tempchar);
+ return;
+ }
for(;;) {
ebuf = (char *)el_gets(el, &num);
- if (data) /* hack to print output then exit if asterisk -rx is used */
- ebuf = strdup("quit");
-
if (ebuf && strlen(ebuf)) {
if (ebuf[strlen(ebuf)-1] == '\n')
ebuf[strlen(ebuf)-1] = '\0';