25 lines
795 B
Diff
25 lines
795 B
Diff
|
diff -up netkit-telnet-0.17/telnet/sys_bsd.c.errnosysbsd netkit-telnet-0.17/telnet/sys_bsd.c
|
||
|
--- netkit-telnet-0.17/telnet/sys_bsd.c.errnosysbsd 2007-09-20 10:57:58.000000000 +0200
|
||
|
+++ netkit-telnet-0.17/telnet/sys_bsd.c 2007-09-20 11:10:08.000000000 +0200
|
||
|
@@ -375,6 +375,7 @@ TerminalNewMode(int f)
|
||
|
int onoff;
|
||
|
int old;
|
||
|
cc_t esc;
|
||
|
+ int err;
|
||
|
|
||
|
globalmode = f&~MODE_FORCE;
|
||
|
if (prevmode == f)
|
||
|
@@ -407,6 +408,12 @@ TerminalNewMode(int f)
|
||
|
tcsetattr(tin, TCSADRAIN, &tmp_tc);
|
||
|
#endif /* USE_TERMIO */
|
||
|
old = ttyflush(SYNCHing|flushout);
|
||
|
+ if (old < 0) {
|
||
|
+ err = errno;
|
||
|
+ if (! ((err == EINTR) || (err == EAGAIN) || (err == ENOSPC))) {
|
||
|
+ break;
|
||
|
+ }
|
||
|
+ }
|
||
|
} while (old < 0 || old > 1);
|
||
|
}
|
||
|
|