From 70b889c543b058eddf2f369069d123c137ced02b Mon Sep 17 00:00:00 2001 From: mid Date: Thu, 30 Aug 2001 00:08:58 +0000 Subject: [PATCH] - Wed Aug 29 16:59:24 PDT 2001 - Pass up entire icon triplet (checksum/length/timestamp) in all cases that it is recieved. - Eric was paying more attention than I am. --- CHANGES | 5 +++++ include/aim.h | 3 +++ src/im.c | 14 ++++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 1e335e3..864512c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,11 @@ No release numbers ------------------ + - Wed Aug 29 16:59:24 PDT 2001 + - Pass up entire icon triplet (checksum/length/timestamp) in all cases + that it is recieved. + - Eric was paying more attention than I am. + - Sat Aug 25 19:46:38 PDT 2001 - Pass "Maximum visible message length" to client in chat info update - This is the real maximum message length now. There is still a diff --git a/include/aim.h b/include/aim.h index 30e15b6..3148acf 100644 --- a/include/aim.h +++ b/include/aim.h @@ -674,6 +674,8 @@ struct aim_incomingim_ch1_args { int finlen; unsigned char fingerprint[10]; time_t iconstamp; + unsigned long iconlength; + unsigned long iconchecksum; int extdatalen; unsigned char *extdata; }; @@ -683,6 +685,7 @@ struct aim_incomingim_ch2_args { unsigned short status; union { struct { + unsigned long checksum; unsigned int length; time_t timestamp; unsigned char *icon; diff --git a/src/im.c b/src/im.c index b2f39cd..143f4d7 100644 --- a/src/im.c +++ b/src/im.c @@ -578,6 +578,8 @@ static int incomingim_ch1(struct aim_session_t *sess, aim_module_t *mod, struct } else if ((type == 0x0008) && (length == 0x000c)) { /* I-HAVE-A-REALLY-PURTY-ICON Flag */ + args.iconchecksum = aimutil_get32(data+i); + args.iconlength = aimutil_get32(data+i+4); args.iconstamp = aimutil_get32(data+i+8); args.icbmflags |= AIM_IMFLAGS_HASICON; @@ -655,11 +657,11 @@ static int incomingim_ch2(struct aim_session_t *sess, aim_module_t *mod, struct } /* - * What follows may be TLVs or nothing, depending on the - * purpose of the message. - * - * Ack packets for instance have nothing more to them. - */ + * What follows may be TLVs or nothing, depending on the + * purpose of the message. + * + * Ack packets for instance have nothing more to them. + */ list2 = aim_readtlvchain(block1->value+2+8+16, block1->length-2-8-16); if (!list2 || ((args.reqclass != AIM_CAPS_IMIMAGE) && !(aim_gettlv(list2, 0x2711, 1)))) { @@ -719,7 +721,7 @@ static int incomingim_ch2(struct aim_session_t *sess, aim_module_t *mod, struct miscinfo = aim_gettlv(list2, 0x2711, 1); - /* aimutil_get32(miscinfo->value+curpos); i don't know what this is */ + args.info.icon.checksum = aimutil_get32(miscinfo->value+curpos); curpos += 4; args.info.icon.length = aimutil_get32(miscinfo->value+curpos); curpos += 4; -- 2.45.1