]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - gui.c
com_sender(): Check return value of send_buffer().
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index f2115832ec3a0773105c152b88e25048873c1a8b..c335250fee77daccc61868963e6135a220337610 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -45,7 +45,7 @@ struct rb_entry {
        size_t len;
        int color;
 };
-void *bot_win_rb;
+struct ringbuffer *bot_win_rb;
 #define NUM_LINES(len) (1 + (len) / bot.cols)
 
 static unsigned scroll_position;
@@ -966,8 +966,15 @@ check_return:
  */
 static int send_output(void)
 {
+       int ret;
+
        if (command_pipe < 0)
                return 0;
+       ret = mark_fd_nonblocking(command_pipe);
+       if (ret < 0) {
+               close(command_pipe);
+               return ret;
+       }
        if (do_select(COMMAND_MODE) >= 0)
                PARA_INFO_LOG("%s", "command complete");
        else
@@ -988,7 +995,6 @@ static int client_cmd_cmdline(char *cmd)
        if (ret < 0)
                return -1;
        command_pipe = fds[1];
-       mark_fd_nonblocking(command_pipe);
        return send_output();
 }
 
@@ -1004,7 +1010,6 @@ static int display_cmd(char *cmd)
        if (para_exec_cmdline_pid(&cmd_pid, cmd, fds) < 0)
                return -1;
        command_pipe = fds[1];
-       mark_fd_nonblocking(command_pipe);
        return send_output();
 }