1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-05 13:32:48 -05:00

Debugging improvements. Started using Dave Hinton's dmemdump

function (woohoo!), improved that function so it provides an ASCII
dump as well as hex (whee!), removed all remaining spurious \r in
debug statements (ooh!), and made enabling of packet debugging in
SSH a matter of one ifdef rather than lots (phew!).

[originally from svn r1091]
This commit is contained in:
Simon Tatham
2001-04-28 17:35:18 +00:00
parent d27112ea87
commit f30937f737
3 changed files with 53 additions and 72 deletions

93
ssh.c
View File

@ -15,6 +15,9 @@
#define TRUE 1
#endif
/* uncomment this for packet level debugging */
/* #define DUMP_PACKETS */
#define logevent(s) { logevent(s); \
if ((flags & FLAG_STDERR) && (flags & FLAG_VERBOSE)) \
{ fprintf(stderr, "%s\n", s); fflush(stderr); } }
@ -487,11 +490,9 @@ next_packet:
if (cipher)
cipher->decrypt(pktin.data, st->biglen);
#if 0
debug(("Got packet len=%d pad=%d\r\n", st->len, st->pad));
for (st->i = 0; st->i < st->biglen; st->i++)
debug((" %02x", (unsigned char)pktin.data[st->i]));
debug(("\r\n"));
#ifdef DUMP_PACKETS
debug(("Got packet len=%d pad=%d\n", st->len, st->pad));
dmemdump(pktin.data, st->biglen);
#endif
st->realcrc = crc32(pktin.data, st->biglen-4);
@ -506,14 +507,9 @@ next_packet:
if (ssh1_compressing) {
unsigned char *decompblk;
int decomplen;
#if 0
{
int i;
debug(("Packet payload pre-decompression:\n"));
for (i = -1; i < pktin.length; i++)
debug((" %02x", (unsigned char)pktin.body[i]));
debug(("\r\n"));
}
#ifdef DUMP_PACKETS
debug(("Packet payload pre-decompression:\n"));
dmemdump(pktin.body-1, pktin.length+1);
#endif
zlib_decompress_block(pktin.body-1, pktin.length+1,
&decompblk, &decomplen);
@ -529,14 +525,9 @@ next_packet:
memcpy(pktin.body-1, decompblk, decomplen);
sfree(decompblk);
pktin.length = decomplen-1;
#if 0
{
int i;
debug(("Packet payload post-decompression:\n"));
for (i = -1; i < pktin.length; i++)
debug((" %02x", (unsigned char)pktin.body[i]));
debug(("\r\n"));
}
#ifdef DUMP_PACKETS
debug(("Packet payload post-decompression:\n"));
dmemdump(pktin.body-1, pktin.length+1);
#endif
}
@ -672,11 +663,9 @@ next_packet:
sccipher->decrypt(pktin.data + st->cipherblk,
st->packetlen - st->cipherblk);
#if 0
debug(("Got packet len=%d pad=%d\r\n", st->len, st->pad));
for (st->i = 0; st->i < st->packetlen; st->i++)
debug((" %02x", (unsigned char)pktin.data[st->i]));
debug(("\r\n"));
#ifdef DUMP_PACKETS
debug(("Got packet len=%d pad=%d\n", st->len, st->pad));
dmemdump(pktin.data, st->packetlen);
#endif
/*
@ -705,11 +694,9 @@ next_packet:
}
pktin.length = 5 + newlen;
memcpy(pktin.data+5, newpayload, newlen);
#if 0
debug(("Post-decompression payload:\r\n"));
for (st->i = 0; st->i < newlen; st->i++)
debug((" %02x", (unsigned char)pktin.data[5+st->i]));
debug(("\r\n"));
#ifdef DUMP_PACKETS
debug(("Post-decompression payload:\n"));
dmemdump(pktin.data+5, newlen);
#endif
sfree(newpayload);
@ -783,11 +770,9 @@ static int s_wrpkt_prepare(void) {
pktout.body[-1] = pktout.type;
#if 0
#ifdef DUMP_PACKETS
debug(("Packet payload pre-compression:\n"));
for (i = -1; i < pktout.length; i++)
debug((" %02x", (unsigned char)pktout.body[i]));
debug(("\r\n"));
dmemdump(pktout.body-1, pktout.length+1);
#endif
if (ssh1_compressing) {
@ -798,11 +783,9 @@ static int s_wrpkt_prepare(void) {
ssh1_pktout_size(complen-1);
memcpy(pktout.body-1, compblk, complen);
sfree(compblk);
#if 0
#ifdef DUMP_PACKETS
debug(("Packet payload post-compression:\n"));
for (i = -1; i < pktout.length; i++)
debug((" %02x", (unsigned char)pktout.body[i]));
debug(("\r\n"));
dmemdump(pktout.body-1, pktout.length+1);
#endif
}
@ -816,11 +799,9 @@ static int s_wrpkt_prepare(void) {
PUT_32BIT(pktout.data+biglen, crc);
PUT_32BIT(pktout.data, len);
#if 0
debug(("Sending packet len=%d\r\n", biglen+4));
for (i = 0; i < biglen+4; i++)
debug((" %02x", (unsigned char)pktout.data[i]));
debug(("\r\n"));
#ifdef DUMP_PACKETS
debug(("Sending packet len=%d\n", biglen+4));
dmemdump(pktout.data, biglen+4);
#endif
if (cipher)
cipher->encrypt(pktout.data+4, biglen);
@ -1058,11 +1039,9 @@ static int ssh2_pkt_construct(void) {
/*
* Compress packet payload.
*/
#if 0
debug(("Pre-compression payload:\r\n"));
for (i = 5; i < pktout.length; i++)
debug((" %02x", (unsigned char)pktout.data[i]));
debug(("\r\n"));
#ifdef DUMP_PACKETS
debug(("Pre-compression payload:\n"));
dmemdump(pktout.data+5, pktout.length-5);
#endif
{
unsigned char *newpayload;
@ -1094,11 +1073,9 @@ static int ssh2_pkt_construct(void) {
outgoing_sequence);
outgoing_sequence++; /* whether or not we MACed */
#if 0
debug(("Sending packet len=%d\r\n", pktout.length+padding));
for (i = 0; i < pktout.length+padding; i++)
debug((" %02x", (unsigned char)pktout.data[i]));
debug(("\r\n"));
#ifdef DUMP_PACKETS
debug(("Sending packet len=%d\n", pktout.length+padding));
dmemdump(pktout.data, pktout.length+padding);
#endif
if (cscipher)
@ -1156,7 +1133,7 @@ void bndebug(char *string, Bignum b) {
debug(("%s", string));
for (i = 0; i < len; i++)
debug((" %02x", p[i]));
debug(("\r\n"));
debug(("\n"));
sfree(p);
}
#endif
@ -2782,10 +2759,8 @@ static int do_ssh2_transport(unsigned char *in, int inlen, int ispkt)
dh_cleanup();
#if 0
debug(("Exchange hash is:\r\n"));
for (i = 0; i < 20; i++)
debug((" %02x", exchange_hash[i]));
debug(("\r\n"));
debug(("Exchange hash is:\n"));
dmemdump(exchange_hash, 20);
#endif
hkey = hostkey->newkey(hostkeydata, hostkeylen);