summaryrefslogtreecommitdiff
path: root/clientloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'clientloop.c')
-rw-r--r--clientloop.c20
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"
18RCSID("$Id: clientloop.c,v 1.6 1999/11/25 00:54:58 damien Exp $"); 18RCSID("$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;