- Merged more OpenBSD changes:
   - [atomicio.c authfd.c scp.c serverloop.c ssh.h sshconnect.c sshd.c]
     move atomicio into it's own file.  wrap all socket write()s which
     were doing write(sock, buf, len) != len, with atomicio() calls.
   - [auth-skey.c]
     fd leak
   - [authfile.c]
     properly name fd variable
   - [channels.c]
     display great hatred towards strcpy
   - [pty.c pty.h sshd.c]
     use openpty() if it exists (it does on BSD4_4)
   - [tildexpand.c]
     check for ~ expansion past MAXPATHLEN
 - Modified helper.c to use new atomicio function.
 - Reformat Makefile a little
 - Moved RC4 routines from rc4.[ch] into helper.c
 - Added autoconf code to detect /dev/ptmx (Solaris) and /dev/ptc (AIX)
diff --git a/clientloop.c b/clientloop.c
index 679180f..bfa3019 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -15,7 +15,7 @@
  */
 
 #include "includes.h"
-RCSID("$Id: clientloop.c,v 1.6 1999/11/25 00:54:58 damien Exp $");
+RCSID("$Id: clientloop.c,v 1.7 1999/12/07 04:38:32 damien Exp $");
 
 #include "xmalloc.h"
 #include "ssh.h"
@@ -466,13 +466,11 @@
 
 	/* Flush stdout and stderr buffers. */
 	if (buffer_len(&stdout_buffer) > 0)
-		write(fileno(stdout),
-		      buffer_ptr(&stdout_buffer),
-		      buffer_len(&stdout_buffer));
+		atomicio(write, fileno(stdout), buffer_ptr(&stdout_buffer),
+		    buffer_len(&stdout_buffer));
 	if (buffer_len(&stderr_buffer) > 0)
-		write(fileno(stderr),
-		      buffer_ptr(&stderr_buffer),
-		      buffer_len(&stderr_buffer));
+		atomicio(write, fileno(stderr), buffer_ptr(&stderr_buffer),
+		    buffer_len(&stderr_buffer));
 
 	leave_raw_mode();
 
@@ -739,7 +737,7 @@
 	if (FD_ISSET(fileno(stdout), writeset)) {
 		/* Write as much data as possible. */
 		len = write(fileno(stdout), buffer_ptr(&stdout_buffer),
-			    buffer_len(&stdout_buffer));
+		    buffer_len(&stdout_buffer));
 		if (len <= 0) {
 			if (errno == EAGAIN)
 				len = 0;
@@ -762,7 +760,7 @@
 	if (FD_ISSET(fileno(stderr), writeset)) {
 		/* Write as much data as possible. */
 		len = write(fileno(stderr), buffer_ptr(&stderr_buffer),
-			    buffer_len(&stderr_buffer));
+		    buffer_len(&stderr_buffer));
 		if (len <= 0) {
 			if (errno == EAGAIN)
 				len = 0;
@@ -911,7 +909,7 @@
 	/* Output any buffered data for stdout. */
 	while (buffer_len(&stdout_buffer) > 0) {
 		len = write(fileno(stdout), buffer_ptr(&stdout_buffer),
-			    buffer_len(&stdout_buffer));
+		    buffer_len(&stdout_buffer));
 		if (len <= 0) {
 			error("Write failed flushing stdout buffer.");
 			break;
@@ -922,7 +920,7 @@
 	/* Output any buffered data for stderr. */
 	while (buffer_len(&stderr_buffer) > 0) {
 		len = write(fileno(stderr), buffer_ptr(&stderr_buffer),
-			    buffer_len(&stderr_buffer));
+		    buffer_len(&stderr_buffer));
 		if (len <= 0) {
 			error("Write failed flushing stderr buffer.");
 			break;