forked from rpms/openssh
50 lines
2.1 KiB
Diff
50 lines
2.1 KiB
Diff
diff -up openssh-5.1p1/nchan.c.compat-sessions openssh-5.1p1/nchan.c
|
|
--- openssh-5.1p1/nchan.c.compat-sessions 2008-07-02 14:32:43.000000000 +0200
|
|
+++ openssh-5.1p1/nchan.c 2008-10-17 09:40:37.000000000 +0200
|
|
@@ -387,6 +387,8 @@ chan_send_eow2(Channel *c)
|
|
c->self);
|
|
return;
|
|
}
|
|
+ if (!(datafellows & SSH_NEW_OPENSSH))
|
|
+ return;
|
|
packet_start(SSH2_MSG_CHANNEL_REQUEST);
|
|
packet_put_int(c->remote_id);
|
|
packet_put_cstring("eow@openssh.com");
|
|
diff -up openssh-5.1p1/compat.c.compat-sessions openssh-5.1p1/compat.c
|
|
--- openssh-5.1p1/compat.c.compat-sessions 2007-01-05 06:26:46.000000000 +0100
|
|
+++ openssh-5.1p1/compat.c 2008-10-17 09:40:37.000000000 +0200
|
|
@@ -91,7 +91,8 @@ compat_datafellows(const char *version)
|
|
"OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR},
|
|
{ "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR },
|
|
{ "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF},
|
|
- { "OpenSSH*", 0 },
|
|
+ { "OpenSSH_4*", 0 },
|
|
+ { "OpenSSH*", SSH_NEW_OPENSSH },
|
|
{ "*MindTerm*", 0 },
|
|
{ "2.1.0*", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|
|
|
SSH_OLD_SESSIONID|SSH_BUG_DEBUG|
|
|
diff -up openssh-5.1p1/compat.h.compat-sessions openssh-5.1p1/compat.h
|
|
--- openssh-5.1p1/compat.h.compat-sessions 2007-01-05 06:26:46.000000000 +0100
|
|
+++ openssh-5.1p1/compat.h 2008-10-17 09:40:37.000000000 +0200
|
|
@@ -57,6 +57,7 @@
|
|
#define SSH_BUG_FIRSTKEX 0x00800000
|
|
#define SSH_OLD_FORWARD_ADDR 0x01000000
|
|
#define SSH_BUG_RFWD_ADDR 0x02000000
|
|
+#define SSH_NEW_OPENSSH 0x04000000
|
|
|
|
void enable_compat13(void);
|
|
void enable_compat20(void);
|
|
diff -up openssh-5.1p1/ssh.c.compat-sessions openssh-5.1p1/ssh.c
|
|
--- openssh-5.1p1/ssh.c.compat-sessions 2008-09-12 11:03:32.000000000 +0200
|
|
+++ openssh-5.1p1/ssh.c 2008-10-17 09:40:37.000000000 +0200
|
|
@@ -1203,7 +1203,8 @@ ssh_session2(void)
|
|
id = ssh_session2_open();
|
|
|
|
/* If we don't expect to open a new session, then disallow it */
|
|
- if (options.control_master == SSHCTL_MASTER_NO) {
|
|
+ if (options.control_master == SSHCTL_MASTER_NO &&
|
|
+ (datafellows & SSH_NEW_OPENSSH)) {
|
|
debug("Requesting no-more-sessions@openssh.com");
|
|
packet_start(SSH2_MSG_GLOBAL_REQUEST);
|
|
packet_put_cstring("no-more-sessions@openssh.com");
|