]> Zhao Yanbai Git Server - minix.git/commitdiff
Don't let rs232 code send REVIVEs.
authorBen Gras <ben@minix3.org>
Thu, 4 Jan 2007 12:06:04 +0000 (12:06 +0000)
committerBen Gras <ben@minix3.org>
Thu, 4 Jan 2007 12:06:04 +0000 (12:06 +0000)
drivers/tty/rs232.c

index bcaa6907e147bd3ed6e0557bae694eb48da697c6..02176b8f97928aa1ca92bd35f3822da0efa464b6 100644 (file)
@@ -351,15 +351,26 @@ int try;
        tp->tty_outcum += count;
        if ((tp->tty_outleft -= count) == 0) {
                /* Output is finished, reply to the writer. */
-               tty_reply(tp->tty_outrepcode, tp->tty_outcaller,
+               if(tp->tty_outrepcode == TTY_REVIVE) {
+                       notify(tp->tty_outcaller);
+                       tp->tty_outrevived = 1;
+               } else {
+                       tty_reply(tp->tty_outrepcode, tp->tty_outcaller,
                                        tp->tty_outproc, tp->tty_outcum);
-               tp->tty_outcum = 0;
+                       tp->tty_outcum = 0;
+               }
        }
   }
   if (tp->tty_outleft > 0 && tp->tty_termios.c_ospeed == B0) {
        /* Oops, the line has hung up. */
-       tty_reply(tp->tty_outrepcode, tp->tty_outcaller, tp->tty_outproc, EIO);
-       tp->tty_outleft = tp->tty_outcum = 0;
+       if(tp->tty_outrepcode == TTY_REVIVE) {
+               notify(tp->tty_outcaller);
+               tp->tty_outrevived = 1;
+       } else {
+               tty_reply(tp->tty_outrepcode, tp->tty_outcaller,
+                       tp->tty_outproc, EIO);
+               tp->tty_outleft = tp->tty_outcum = 0;
+       }
   }
 
   return 1;