From a69d89bb459fb47880b03bc003479b1d98284c2e Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Wed, 9 May 2001 00:01:18 +0000 Subject: [PATCH] I have no clue how this file was mised.. - markus@cvs.openbsd.org 2001/05/08 19:17:31 [channels.c serverloop.c clientloop.c] adds correct error reporting to async connect()s fixes the server-discards-data-before-connected-bug found by onoe@sm.sony.co.jp --- ChangeLog | 4 ++-- clientloop.c | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index d215a6151..4caffa290 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,7 @@ [cli.c] cli_read() fails to catch SIGINT + overflow; from obdb@zzlevo.net - markus@cvs.openbsd.org 2001/05/08 19:17:31 - [channels.c serverloop.c] + [channels.c serverloop.c clientloop.c] adds correct error reporting to async connect()s fixes the server-discards-data-before-connected-bug found by onoe@sm.sony.co.jp @@ -5379,4 +5379,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1211 2001/05/08 23:58:37 mouring Exp $ +$Id: ChangeLog,v 1.1212 2001/05/09 00:01:18 mouring Exp $ diff --git a/clientloop.c b/clientloop.c index 3294b0cfe..b2b7debc8 100644 --- a/clientloop.c +++ b/clientloop.c @@ -59,7 +59,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: clientloop.c,v 1.68 2001/05/06 21:45:14 markus Exp $"); +RCSID("$OpenBSD: clientloop.c,v 1.69 2001/05/08 19:17:31 markus Exp $"); #include "ssh.h" #include "ssh1.h" @@ -1150,20 +1150,21 @@ client_input_channel_open(int type, int plen, void *ctxt) c->remote_id = rchan; c->remote_window = rwindow; c->remote_maxpacket = rmaxpack; - - packet_start(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION); - packet_put_int(c->remote_id); - packet_put_int(c->self); - packet_put_int(c->local_window); - packet_put_int(c->local_maxpacket); - packet_send(); + if (c->type != SSH_CHANNEL_CONNECTING) { + packet_start(SSH2_MSG_CHANNEL_OPEN_CONFIRMATION); + packet_put_int(c->remote_id); + packet_put_int(c->self); + packet_put_int(c->local_window); + packet_put_int(c->local_maxpacket); + packet_send(); + } } else { debug("failure %s", ctype); packet_start(SSH2_MSG_CHANNEL_OPEN_FAILURE); packet_put_int(rchan); packet_put_int(SSH2_OPEN_ADMINISTRATIVELY_PROHIBITED); if (!(datafellows & SSH_BUG_OPENFAILURE)) { - packet_put_cstring("bla bla"); + packet_put_cstring("open failed"); packet_put_cstring(""); } packet_send();