diff options
Diffstat (limited to 'clientloop.c')
-rw-r--r-- | clientloop.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/clientloop.c b/clientloop.c index 679180f58..bfa3019b6 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -15,7 +15,7 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include "includes.h" | 17 | #include "includes.h" |
18 | RCSID("$Id: clientloop.c,v 1.6 1999/11/25 00:54:58 damien Exp $"); | 18 | RCSID("$Id: clientloop.c,v 1.7 1999/12/07 04:38:32 damien Exp $"); |
19 | 19 | ||
20 | #include "xmalloc.h" | 20 | #include "xmalloc.h" |
21 | #include "ssh.h" | 21 | #include "ssh.h" |
@@ -466,13 +466,11 @@ client_suspend_self() | |||
466 | 466 | ||
467 | /* Flush stdout and stderr buffers. */ | 467 | /* Flush stdout and stderr buffers. */ |
468 | if (buffer_len(&stdout_buffer) > 0) | 468 | if (buffer_len(&stdout_buffer) > 0) |
469 | write(fileno(stdout), | 469 | atomicio(write, fileno(stdout), buffer_ptr(&stdout_buffer), |
470 | buffer_ptr(&stdout_buffer), | 470 | buffer_len(&stdout_buffer)); |
471 | buffer_len(&stdout_buffer)); | ||
472 | if (buffer_len(&stderr_buffer) > 0) | 471 | if (buffer_len(&stderr_buffer) > 0) |
473 | write(fileno(stderr), | 472 | atomicio(write, fileno(stderr), buffer_ptr(&stderr_buffer), |
474 | buffer_ptr(&stderr_buffer), | 473 | buffer_len(&stderr_buffer)); |
475 | buffer_len(&stderr_buffer)); | ||
476 | 474 | ||
477 | leave_raw_mode(); | 475 | leave_raw_mode(); |
478 | 476 | ||
@@ -739,7 +737,7 @@ client_process_output(fd_set * writeset) | |||
739 | if (FD_ISSET(fileno(stdout), writeset)) { | 737 | if (FD_ISSET(fileno(stdout), writeset)) { |
740 | /* Write as much data as possible. */ | 738 | /* Write as much data as possible. */ |
741 | len = write(fileno(stdout), buffer_ptr(&stdout_buffer), | 739 | len = write(fileno(stdout), buffer_ptr(&stdout_buffer), |
742 | buffer_len(&stdout_buffer)); | 740 | buffer_len(&stdout_buffer)); |
743 | if (len <= 0) { | 741 | if (len <= 0) { |
744 | if (errno == EAGAIN) | 742 | if (errno == EAGAIN) |
745 | len = 0; | 743 | len = 0; |
@@ -762,7 +760,7 @@ client_process_output(fd_set * writeset) | |||
762 | if (FD_ISSET(fileno(stderr), writeset)) { | 760 | if (FD_ISSET(fileno(stderr), writeset)) { |
763 | /* Write as much data as possible. */ | 761 | /* Write as much data as possible. */ |
764 | len = write(fileno(stderr), buffer_ptr(&stderr_buffer), | 762 | len = write(fileno(stderr), buffer_ptr(&stderr_buffer), |
765 | buffer_len(&stderr_buffer)); | 763 | buffer_len(&stderr_buffer)); |
766 | if (len <= 0) { | 764 | if (len <= 0) { |
767 | if (errno == EAGAIN) | 765 | if (errno == EAGAIN) |
768 | len = 0; | 766 | len = 0; |
@@ -911,7 +909,7 @@ client_loop(int have_pty, int escape_char_arg) | |||
911 | /* Output any buffered data for stdout. */ | 909 | /* Output any buffered data for stdout. */ |
912 | while (buffer_len(&stdout_buffer) > 0) { | 910 | while (buffer_len(&stdout_buffer) > 0) { |
913 | len = write(fileno(stdout), buffer_ptr(&stdout_buffer), | 911 | len = write(fileno(stdout), buffer_ptr(&stdout_buffer), |
914 | buffer_len(&stdout_buffer)); | 912 | buffer_len(&stdout_buffer)); |
915 | if (len <= 0) { | 913 | if (len <= 0) { |
916 | error("Write failed flushing stdout buffer."); | 914 | error("Write failed flushing stdout buffer."); |
917 | break; | 915 | break; |
@@ -922,7 +920,7 @@ client_loop(int have_pty, int escape_char_arg) | |||
922 | /* Output any buffered data for stderr. */ | 920 | /* Output any buffered data for stderr. */ |
923 | while (buffer_len(&stderr_buffer) > 0) { | 921 | while (buffer_len(&stderr_buffer) > 0) { |
924 | len = write(fileno(stderr), buffer_ptr(&stderr_buffer), | 922 | len = write(fileno(stderr), buffer_ptr(&stderr_buffer), |
925 | buffer_len(&stderr_buffer)); | 923 | buffer_len(&stderr_buffer)); |
926 | if (len <= 0) { | 924 | if (len <= 0) { |
927 | error("Write failed flushing stderr buffer."); | 925 | error("Write failed flushing stderr buffer."); |
928 | break; | 926 | break; |