From 8ccc75b0d2187cd9e35913749de0ed00e9ef5931 Mon Sep 17 00:00:00 2001 From: simon Date: Fri, 8 Sep 2000 16:42:11 +0000 Subject: [PATCH] Stop plink losing data at start of session git-svn-id: svn://svn.tartarus.org/sgt/putty@577 cda61777-01e9-0310-a592-d414129be87e --- putty.h | 1 + raw.c | 7 +++++-- ssh.c | 11 +++++++++-- telnet.c | 7 +++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/putty.h b/putty.h index 8c69d905..f89aeac4 100644 --- a/putty.h +++ b/putty.h @@ -110,6 +110,7 @@ typedef struct { void (*size) (void); void (*special) (Telnet_Special code); SOCKET (*socket) (void); + int (*sendok) (void); } Backend; GLOBAL Backend *back; diff --git a/raw.c b/raw.c index 2c3e8522..cf4eaee1 100644 --- a/raw.c +++ b/raw.c @@ -215,7 +215,9 @@ static void raw_special (Telnet_Special code) { return; } -SOCKET raw_socket(void) { return s; } +static SOCKET raw_socket(void) { return s; } + +static int raw_sendok(void) { return 1; } Backend raw_backend = { raw_init, @@ -223,5 +225,6 @@ Backend raw_backend = { raw_send, raw_size, raw_special, - raw_socket + raw_socket, + raw_sendok }; diff --git a/ssh.c b/ssh.c index 7e02bacf..82d61e98 100644 --- a/ssh.c +++ b/ssh.c @@ -163,6 +163,7 @@ static struct ssh_hostkey *hostkey = NULL; int (*ssh_get_password)(const char *prompt, char *str, int maxlen) = NULL; static char *savedhost; +static int ssh_send_ok; static enum { SSH_STATE_BEFORE_SIZE, @@ -990,6 +991,7 @@ static int do_ssh_init(void) { ssh_version = 1; s_rdpkt = ssh1_rdpkt; } + ssh_send_ok = 0; return 1; } @@ -1411,6 +1413,7 @@ static void ssh1_protocol(unsigned char *in, int inlen, int ispkt) { if (size_needed) ssh_size(); + ssh_send_ok = 1; while (1) { crReturnV; if (ispkt) { @@ -1976,6 +1979,7 @@ static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt) /* * Transfer data! */ + ssh_send_ok = 1; while (1) { crReturnV; if (ispkt) { @@ -2312,7 +2316,9 @@ char *ssh_scp_init(char *host, int port, char *cmd, char **realhost) return NULL; } -SOCKET ssh_socket(void) { return s; } +static SOCKET ssh_socket(void) { return s; } + +static int ssh_sendok(void) { return ssh_send_ok; } Backend ssh_backend = { ssh_init, @@ -2320,5 +2326,6 @@ Backend ssh_backend = { ssh_send, ssh_size, ssh_special, - ssh_socket + ssh_socket, + ssh_sendok }; diff --git a/telnet.c b/telnet.c index 9e6e6cdb..283ea5b6 100644 --- a/telnet.c +++ b/telnet.c @@ -732,7 +732,9 @@ static void telnet_special (Telnet_Special code) { } } -SOCKET telnet_socket(void) { return s; } +static SOCKET telnet_socket(void) { return s; } + +static int telnet_sendok(void) { return 1; } Backend telnet_backend = { telnet_init, @@ -740,5 +742,6 @@ Backend telnet_backend = { telnet_send, telnet_size, telnet_special, - telnet_socket + telnet_socket, + telnet_sendok }; -- 2.11.0