]> andersk Git - openssh.git/blobdiff - serverloop.c
- 1.47 Thu Feb 8 23:11:42 GMT 2001 by dugsong
[openssh.git] / serverloop.c
index c8187ab20ed6d2103e922ceaf7d99ea8a61a3dfd..8fc94db4501a603a4adcf0f7e6853c4d9403fa00 100644 (file)
@@ -35,7 +35,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: serverloop.c,v 1.46 2001/02/08 19:30:52 itojun Exp $");
+RCSID("$OpenBSD: serverloop.c,v 1.47 2001/02/08 23:11:42 dugsong Exp $");
 
 #include "xmalloc.h"
 #include "packet.h"
@@ -317,6 +317,7 @@ process_input(fd_set * readset)
 void
 process_output(fd_set * writeset)
 {
+       struct termios tio;
        int len;
 
        /* Write buffered data to program stdin. */
@@ -336,7 +337,16 @@ process_output(fd_set * writeset)
 #endif
                        fdin = -1;
                } else {
-                       /* Successful write.  Consume the data from the buffer. */
+                       /* Successful write. */
+                       if (tcgetattr(fdin, &tio) == 0 &&
+                           !(tio.c_lflag & ECHO)) {
+                               /* Simulate echo to reduce the impact of traffic analysis. */
+                               packet_start(SSH_MSG_IGNORE);
+                               memset(buffer_ptr(&stdin_buffer), 0, len);
+                               packet_put_string(buffer_ptr(&stdin_buffer), len);
+                               packet_send();
+                       }
+                       /* Consume the data from the buffer. */
                        buffer_consume(&stdin_buffer, len);
                        /* Update the count of bytes written to the program. */
                        stdin_bytes += len;
This page took 1.025417 seconds and 4 git commands to generate.