From 8f276e00c5fa41851fc81cf52a92afbad583c83a Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Wed, 3 Dec 2003 03:03:15 +0000 Subject: Minor patch for improving console response with asterisk -r (bug #183) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1817 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- asterisk.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'asterisk.c') diff --git a/asterisk.c b/asterisk.c index 37efe8029..0659cb431 100755 --- a/asterisk.c +++ b/asterisk.c @@ -167,6 +167,7 @@ static void *netconsole(void *vconsole) int res; int max; fd_set rfds; + struct timeval tv; if (gethostname(hostname, sizeof(hostname))) strncpy(hostname, "", sizeof(hostname)-1); @@ -179,11 +180,17 @@ static void *netconsole(void *vconsole) max = con->fd; if (con->p[0] > max) max = con->p[0]; - res = ast_select(max + 1, &rfds, NULL, NULL, NULL); + tv.tv_sec = 4; /* Wait max 4 sec for fds to become active */ + tv.tv_usec = 0; + res = ast_select(max + 1, &rfds, NULL, NULL, &tv); if (res < 0) { ast_log(LOG_WARNING, "select returned < 0: %s\n", strerror(errno)); continue; } + if (res == 0) { + ast_log(LOG_WARNING, "Timeout on select.\n"); + break; + } if (FD_ISSET(con->fd, &rfds)) { res = read(con->fd, tmp, sizeof(tmp)); if (res < 1) { @@ -794,7 +801,7 @@ static int ast_el_read_char(EditLine *el, char *cp) if (!option_exec && !lastpos) write(STDOUT_FILENO, "\r", 1); write(STDOUT_FILENO, buf, res); - if ((buf[res-1] == '\n') || (buf[res-2] == '\n')) { + if ((buf[res-1] == '\n') && (buf[res-2] == '\n')) { *cp = CC_REFRESH; return(1); } else { -- cgit v1.2.3