]> git.pond.sub.org Git - empserver/commitdiff
client: Simplify input EOF handling
authorMarkus Armbruster <armbru@pond.sub.org>
Tue, 29 Dec 2015 18:26:58 +0000 (19:26 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 6 Aug 2017 09:22:29 +0000 (11:22 +0200)
We increment @send_eof only when read() returns zero, and we read()
only when it's zero.  Therefore, we never increment it beyond one.
Change it from counter to flag.

This effectively reverts commit 51846ec (v4.3.11).  Possible only
because the previous commit got rid of the @send_eof increment on
failed execute.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
src/client/play.c

index 93ba6bcb07cd1061e9afea157eb831189fdf7012..9881622f67749c0e842a1b3e3bcba835cd83bea7 100644 (file)
@@ -508,7 +508,7 @@ play(int sock)
            partial_line_sent = 0;
        if (send_eof && !partial_line_sent
            && ring_putm(&inbuf, EOF_COOKIE, sizeof(EOF_COOKIE) - 1) >= 0)
-           send_eof--;
+           send_eof = 0;
        if (send_intr && !partial_line_sent
            && ring_putm(&inbuf, INTR_COOKIE, sizeof(INTR_COOKIE) - 1) >= 0) {
            send_intr = 0;
@@ -532,14 +532,14 @@ play(int sock)
                        perror("read batch file");
                        send_intr = 1;
                    } else
-                       send_eof++;
+                       send_eof = 1;
                    close(input_fd);
                    input_fd = 0;
                } else {
                    /* stop reading input, drain socket ring buffers */
                    if (n < 0)
                        perror("read stdin");
-                   send_eof++;
+                   send_eof = 1;
                    eof_fd0 = 1;
                    sa.sa_handler = SIG_DFL;
                    sigaction(SIGINT, &sa, NULL);