diff options
Diffstat (limited to 'debian/patches/ssh1-keepalive.patch')
-rw-r--r-- | debian/patches/ssh1-keepalive.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/patches/ssh1-keepalive.patch b/debian/patches/ssh1-keepalive.patch new file mode 100644 index 000000000..b71ff9df9 --- /dev/null +++ b/debian/patches/ssh1-keepalive.patch | |||
@@ -0,0 +1,65 @@ | |||
1 | Description: Partial server keep-alive implementation for SSH1 | ||
2 | Author: Colin Watson <cjwatson@debian.org> | ||
3 | Bug: https://bugzilla.mindrot.org/show_bug.cgi?id=1712 | ||
4 | Last-Update: 2010-02-27 | ||
5 | |||
6 | Index: b/clientloop.c | ||
7 | =================================================================== | ||
8 | --- a/clientloop.c | ||
9 | +++ b/clientloop.c | ||
10 | @@ -565,16 +565,21 @@ | ||
11 | static void | ||
12 | server_alive_check(void) | ||
13 | { | ||
14 | - if (packet_inc_alive_timeouts() > options.server_alive_count_max) { | ||
15 | - logit("Timeout, server %s not responding.", host); | ||
16 | - cleanup_exit(255); | ||
17 | + if (compat20) { | ||
18 | + if (packet_inc_alive_timeouts() > options.server_alive_count_max) { | ||
19 | + logit("Timeout, server %s not responding.", host); | ||
20 | + cleanup_exit(255); | ||
21 | + } | ||
22 | + packet_start(SSH2_MSG_GLOBAL_REQUEST); | ||
23 | + packet_put_cstring("keepalive@openssh.com"); | ||
24 | + packet_put_char(1); /* boolean: want reply */ | ||
25 | + packet_send(); | ||
26 | + /* Insert an empty placeholder to maintain ordering */ | ||
27 | + client_register_global_confirm(NULL, NULL); | ||
28 | + } else { | ||
29 | + packet_send_ignore(0); | ||
30 | + packet_send(); | ||
31 | } | ||
32 | - packet_start(SSH2_MSG_GLOBAL_REQUEST); | ||
33 | - packet_put_cstring("keepalive@openssh.com"); | ||
34 | - packet_put_char(1); /* boolean: want reply */ | ||
35 | - packet_send(); | ||
36 | - /* Insert an empty placeholder to maintain ordering */ | ||
37 | - client_register_global_confirm(NULL, NULL); | ||
38 | } | ||
39 | |||
40 | /* | ||
41 | @@ -636,7 +641,7 @@ | ||
42 | */ | ||
43 | |||
44 | timeout_secs = INT_MAX; /* we use INT_MAX to mean no timeout */ | ||
45 | - if (options.server_alive_interval > 0 && compat20) | ||
46 | + if (options.server_alive_interval > 0) | ||
47 | timeout_secs = options.server_alive_interval; | ||
48 | set_control_persist_exit_time(); | ||
49 | if (control_persist_exit_time > 0) { | ||
50 | Index: b/ssh_config.5 | ||
51 | =================================================================== | ||
52 | --- a/ssh_config.5 | ||
53 | +++ b/ssh_config.5 | ||
54 | @@ -1088,7 +1088,10 @@ | ||
55 | .Cm ServerAliveCountMax | ||
56 | is left at the default, if the server becomes unresponsive, | ||
57 | ssh will disconnect after approximately 45 seconds. | ||
58 | -This option applies to protocol version 2 only. | ||
59 | +This option applies to protocol version 2 only; in protocol version | ||
60 | +1 there is no mechanism to request a response from the server to the | ||
61 | +server alive messages, so disconnection is the responsibility of the TCP | ||
62 | +stack. | ||
63 | .It Cm ServerAliveInterval | ||
64 | Sets a timeout interval in seconds after which if no data has been received | ||
65 | from the server, | ||