projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add some discussion of rekeys-as-keepalives, and their potential
[u/mdw/putty]
/
ssh.c
diff --git
a/ssh.c
b/ssh.c
index
3f37c64
..
f92975d
100644
(file)
--- a/
ssh.c
+++ b/
ssh.c
@@
-4185,7
+4185,7
@@
static void ssh1_msg_channel_data(Ssh ssh, struct Packet *pktin)
/* Data sent down one of our channels. */
int i = ssh_pkt_getuint32(pktin);
char *p;
/* Data sent down one of our channels. */
int i = ssh_pkt_getuint32(pktin);
char *p;
- int len;
+
unsigned
int len;
struct ssh_channel *c;
ssh_pkt_getstring(pktin, &p, &len);
struct ssh_channel *c;
ssh_pkt_getstring(pktin, &p, &len);
@@
-4204,7
+4204,7
@@
static void ssh1_msg_channel_data(Ssh ssh, struct Packet *pktin)
/* Data for an agent message. Buffer it. */
while (len > 0) {
if (c->u.a.lensofar < 4) {
/* Data for an agent message. Buffer it. */
while (len > 0) {
if (c->u.a.lensofar < 4) {
- int l = min(4 - c->u.a.lensofar, len);
+
unsigned
int l = min(4 - c->u.a.lensofar, len);
memcpy(c->u.a.msglen + c->u.a.lensofar, p,
l);
p += l;
memcpy(c->u.a.msglen + c->u.a.lensofar, p,
l);
p += l;
@@
-4219,7
+4219,7
@@
static void ssh1_msg_channel_data(Ssh ssh, struct Packet *pktin)
memcpy(c->u.a.message, c->u.a.msglen, 4);
}
if (c->u.a.lensofar >= 4 && len > 0) {
memcpy(c->u.a.message, c->u.a.msglen, 4);
}
if (c->u.a.lensofar >= 4 && len > 0) {
- int l =
+
unsigned
int l =
min(c->u.a.totallen - c->u.a.lensofar,
len);
memcpy(c->u.a.message + c->u.a.lensofar, p,
min(c->u.a.totallen - c->u.a.lensofar,
len);
memcpy(c->u.a.message + c->u.a.lensofar, p,
@@
-5335,7
+5335,7
@@
static void ssh2_msg_channel_window_adjust(Ssh ssh, struct Packet *pktin)
static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin)
{
char *data;
static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin)
{
char *data;
- int length;
+
unsigned
int length;
unsigned i = ssh_pkt_getuint32(pktin);
struct ssh_channel *c;
c = find234(ssh->channels, &i, ssh_channelfind);
unsigned i = ssh_pkt_getuint32(pktin);
struct ssh_channel *c;
c = find234(ssh->channels, &i, ssh_channelfind);
@@
-5364,7
+5364,7
@@
static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin)
case CHAN_AGENT:
while (length > 0) {
if (c->u.a.lensofar < 4) {
case CHAN_AGENT:
while (length > 0) {
if (c->u.a.lensofar < 4) {
- int l = min(4 - c->u.a.lensofar, length);
+
unsigned
int l = min(4 - c->u.a.lensofar, length);
memcpy(c->u.a.msglen + c->u.a.lensofar,
data, l);
data += l;
memcpy(c->u.a.msglen + c->u.a.lensofar,
data, l);
data += l;
@@
-5379,7
+5379,7
@@
static void ssh2_msg_channel_data(Ssh ssh, struct Packet *pktin)
memcpy(c->u.a.message, c->u.a.msglen, 4);
}
if (c->u.a.lensofar >= 4 && length > 0) {
memcpy(c->u.a.message, c->u.a.msglen, 4);
}
if (c->u.a.lensofar >= 4 && length > 0) {
- int l =
+
unsigned
int l =
min(c->u.a.totallen - c->u.a.lensofar,
length);
memcpy(c->u.a.message + c->u.a.lensofar,
min(c->u.a.totallen - c->u.a.lensofar,
length);
memcpy(c->u.a.message + c->u.a.lensofar,
@@
-7861,6
+7861,16
@@
static int ssh_return_exitcode(void *handle)
}
/*
}
/*
+ * cfg_info for SSH is the currently running version of the
+ * protocol. (1 for 1; 2 for 2; 0 for not-decided-yet.)
+ */
+static int ssh_cfg_info(void *handle)
+{
+ Ssh ssh = (Ssh) handle;
+ return ssh->version;
+}
+
+/*
* Gross hack: pscp will try to start SFTP but fall back to scp1 if
* that fails. This variable is the means by which scp.c can reach
* into the SSH code and find out which one it got.
* Gross hack: pscp will try to start SFTP but fall back to scp1 if
* that fails. This variable is the means by which scp.c can reach
* into the SSH code and find out which one it got.
@@
-7887,5
+7897,6
@@
Backend ssh_backend = {
ssh_provide_ldisc,
ssh_provide_logctx,
ssh_unthrottle,
ssh_provide_ldisc,
ssh_provide_logctx,
ssh_unthrottle,
+ ssh_cfg_info,
22
};
22
};