From fa35873281f1f1fd8540b3476673406dc1e22153 Mon Sep 17 00:00:00 2001 From: mid Date: Fri, 1 Jun 2001 06:09:03 +0000 Subject: [PATCH] - Thu May 31 23:00:50 PDT 2001 - Store two hardcoded hashes in login.c. Sigh. - Add prototype for aim_callhandler_noparam in aim_internal.h --- CHANGES | 4 ++++ include/aim_internal.h | 1 + src/login.c | 35 +++++++++++++++++++++++++---------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/CHANGES b/CHANGES index 14bf8c3..38b88d2 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,10 @@ No release numbers ------------------ + - Thu May 31 23:00:50 PDT 2001 + - Store two hardcoded hashes in login.c. Sigh. + - Add prototype for aim_callhandler_noparam in aim_internal.h + - Sat May 26 03:58:27 PDT 2001 - Aha! This is why I could never get icons to work before. - Luckily the checksum is painfully simple. diff --git a/include/aim_internal.h b/include/aim_internal.h index 8c5314d..a08a0dd 100644 --- a/include/aim_internal.h +++ b/include/aim_internal.h @@ -61,6 +61,7 @@ faim_internal int aim_tx_printqueue(struct aim_session_t *); faim_internal int aim_tx_cleanqueue(struct aim_session_t *, struct aim_conn_t *); faim_internal aim_rxcallback_t aim_callhandler(struct aim_session_t *sess, struct aim_conn_t *conn, u_short family, u_short type); +faim_internal int aim_callhandler_noparam(struct aim_session_t *sess, struct aim_conn_t *conn, u_short family, u_short type, struct command_rx_struct *ptr); /* * Generic SNAC structure. Rarely if ever used. diff --git a/src/login.c b/src/login.c index 987c66a..4bd026e 100644 --- a/src/login.c +++ b/src/login.c @@ -809,21 +809,36 @@ faim_export int aim_sendmemblock(struct aim_session_t *sess, struct aim_conn_t * } else { - if ((offset != 0x00001004) || (len != 0x00000004)) - faimdprintf(sess, 0, "sendmemblock: WARNING: sending bad hash... you will be disconnected soon...\n"); - /* - * This data is correct for AIM 3.5.1670, offset 0x03ffffff, - * length 0x03ffffff (invalid). + * This data is correct for AIM 3.5.1670. * - * Using this block is as close to "legal" as you can get without + * Using these blocks is as close to "legal" as you can get without * using an AIM binary. * */ - i += aimutil_put32(tx->data+i, 0x1df8cbae); - i += aimutil_put32(tx->data+i, 0x5523b839); - i += aimutil_put32(tx->data+i, 0xa0e10db3); - i += aimutil_put32(tx->data+i, 0xa46d3b39); + if ((offset == 0x03ffffff) && (len == 0x03ffffff)) { + +#if 1 /* with "AnrbnrAqhfzcd" */ + i += aimutil_put32(tx->data+i, 0x44a95d26); + i += aimutil_put32(tx->data+i, 0xd2490423); + i += aimutil_put32(tx->data+i, 0x93b8821f); + i += aimutil_put32(tx->data+i, 0x51c54b01); +#else /* no filename */ + i += aimutil_put32(tx->data+i, 0x1df8cbae); + i += aimutil_put32(tx->data+i, 0x5523b839); + i += aimutil_put32(tx->data+i, 0xa0e10db3); + i += aimutil_put32(tx->data+i, 0xa46d3b39); +#endif + + } else if ((offset == 0x00001000) && (len == 0x00000000)) { + + i += aimutil_put32(tx->data+i, 0xd41d8cd9); + i += aimutil_put32(tx->data+i, 0x8f00b204); + i += aimutil_put32(tx->data+i, 0xe9800998); + i += aimutil_put32(tx->data+i, 0xecf8427e); + + } else + faimdprintf(sess, 0, "sendmemblock: WARNING: unknown hash request\n"); } -- 2.45.1