Merged revisions 72260 via svnmerge from
authorBrett Bryant <bbryant@digium.com>
Wed, 27 Jun 2007 20:47:45 +0000 (20:47 +0000)
committerBrett Bryant <bbryant@digium.com>
Wed, 27 Jun 2007 20:47:45 +0000 (20:47 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r72260 | bbryant | 2007-06-27 15:46:12 -0500 (Wed, 27 Jun 2007) | 12 lines

Merged revisions 72259 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r72259 | bbryant | 2007-06-27 15:43:53 -0500 (Wed, 27 Jun 2007) | 4 lines

Fixes 100% load when controlling terminal disappears.

Issue #9654, #10010

........

................

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

main/asterisk.c

index 2e81f3d..eb5654a 100644 (file)
@@ -2232,6 +2232,9 @@ static void ast_remotecontrol(char * data)
        for (;;) {
                ebuf = (char *)el_gets(el, &num);
 
+               if (!ebuf && write(1, "", 1) < 0)
+                       break;
+
                if (!ast_strlen_zero(ebuf)) {
                        if (ebuf[strlen(ebuf)-1] == '\n')
                                ebuf[strlen(ebuf)-1] = '\0';
@@ -2957,6 +2960,10 @@ int main(int argc, char *argv[])
 
                for (;;) {
                        buf = (char *)el_gets(el, &num);
+
+                       if (!buf && write(1, "", 1) < 0)
+                               goto lostterm;
+
                        if (buf) {
                                if (buf[strlen(buf)-1] == '\n')
                                        buf[strlen(buf)-1] = '\0';
@@ -2979,5 +2986,6 @@ int main(int argc, char *argv[])
 
        monitor_sig_flags(NULL);
 
+lostterm:
        return 0;
 }