diff options
Diffstat (limited to 'session.c')
-rw-r--r-- | session.c | 14 |
1 files changed, 4 insertions, 10 deletions
@@ -33,7 +33,7 @@ | |||
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include "includes.h" | 35 | #include "includes.h" |
36 | RCSID("$OpenBSD: session.c,v 1.159 2003/07/22 13:35:22 markus Exp $"); | 36 | RCSID("$OpenBSD: session.c,v 1.160 2003/08/13 08:33:02 markus Exp $"); |
37 | 37 | ||
38 | #include "ssh.h" | 38 | #include "ssh.h" |
39 | #include "ssh1.h" | 39 | #include "ssh1.h" |
@@ -1693,18 +1693,12 @@ session_break_req(Session *s) | |||
1693 | { | 1693 | { |
1694 | u_int break_length; | 1694 | u_int break_length; |
1695 | 1695 | ||
1696 | break_length = packet_get_int(); | 1696 | break_length = packet_get_int(); /* ignored */ |
1697 | packet_check_eom(); | 1697 | packet_check_eom(); |
1698 | 1698 | ||
1699 | if (s->ttyfd == -1) | 1699 | if (s->ttyfd == -1 || |
1700 | tcsendbreak(s->ttyfd, 0) < 0) | ||
1700 | return 0; | 1701 | return 0; |
1701 | /* we will sleep from 500ms to 3000ms */ | ||
1702 | break_length = MIN(break_length, 3000); | ||
1703 | break_length = MAX(break_length, 500); | ||
1704 | ioctl(s->ttyfd, TIOCSBRK, NULL); | ||
1705 | /* should we care about EINTR? */ | ||
1706 | usleep(break_length * 1000); | ||
1707 | ioctl(s->ttyfd, TIOCCBRK, NULL); | ||
1708 | return 1; | 1702 | return 1; |
1709 | } | 1703 | } |
1710 | 1704 | ||