summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
69e7980)
- I haven't decided yet whether today is a good day or a bad day.
- Probably both.
- More later.
No release numbers
------------------
No release numbers
------------------
+ - Tue Mar 27 19:15:10 PST 2001
+ - I haven't decided yet whether today is a good day or a bad day.
+ - Probably both.
+ - More later.
+
- Mon Mar 26 16:08:45 PST 2001
- Why didn't anyone tell me buddy-offgoing wasn't working?
- *** REQUIRES CLIENT CHANGES... buddy-offgoing now passes a userinfo
- Mon Mar 26 16:08:45 PST 2001
- Why didn't anyone tell me buddy-offgoing wasn't working?
- *** REQUIRES CLIENT CHANGES... buddy-offgoing now passes a userinfo
/* Hummm.... */
i = aim_putsnac(tx->data, 0x0001, 0x0020, 0x0000, sess->snac_nextid++);
i += aimutil_put16(tx->data+i, 0x0010);
/* Hummm.... */
i = aim_putsnac(tx->data, 0x0001, 0x0020, 0x0000, sess->snac_nextid++);
i += aimutil_put16(tx->data+i, 0x0010);
- i += aimutil_put32(tx->data+i, 0x469bf5e7);
- i += aimutil_put32(tx->data+i, 0x01a19b28);
- i += aimutil_put32(tx->data+i, 0x54c59ea6);
- i += aimutil_put32(tx->data+i, 0x88eae54a);
-
+ i += aimutil_put32(tx->data+i, 0x92bd6757);
+ i += aimutil_put32(tx->data+i, 0x3722cbd3);
+ i += aimutil_put32(tx->data+i, 0x2b048ab9);
+ i += aimutil_put32(tx->data+i, 0xd0b1e4ab);
+
tx->commandlen = i;
tx->lock = 0;
aim_tx_enqueue(sess, tx);
tx->commandlen = i;
tx->lock = 0;
aim_tx_enqueue(sess, tx);
* build = 0x0686
* unknown =0x0000002a
*
* build = 0x0686
* unknown =0x0000002a
*
+ * Java AIM 1.1.19:
+ * clientstring = "AOL Instant Messenger (TM) version 1.1.19 for Java built 03/24/98, freeMem 215871 totalMem 1048567, i686, Linus, #2 SMP Sun Feb 11 03:41:17 UTC 2001 2.4.1-ac9, IBM Corporation, 1.1.8, 45.3, Tue Mar 27 12:09:17 PST 2001"
+ * major2 = 0x0001
+ * major = 0x0001
+ * minor = 0x0001
+ * minor2 = (not sent)
+ * build = 0x0013
+ * unknown= (not sent)
+ *
+ * AIM for Linux 1.1.112:
+ * clientstring = "AOL Instant Messenger (SM)"
+ * major2 = 0x1d09
+ * major = 0x0001
+ * minor = 0x0001
+ * minor2 = 0x0001
+ * build = 0x0070
+ * unknown= 0x0000008b
+ * serverstore = 0x01
+ *
*/
faim_export int aim_send_login (struct aim_session_t *sess,
struct aim_conn_t *conn,
*/
faim_export int aim_send_login (struct aim_session_t *sess,
struct aim_conn_t *conn,
+/*
+ * Stay tuned. I have an explanation for here.
+ *
+ *
+ */
+static int memrequest(struct aim_session_t *sess, aim_module_t *mod, struct command_rx_struct *rx, aim_modsnac_t *snac, unsigned char *data, int datalen)
+{
+ return 1;
+}
static int snachandler(struct aim_session_t *sess, aim_module_t *mod, struct command_rx_struct *rx, aim_modsnac_t *snac, unsigned char *data, int datalen)
{
static int snachandler(struct aim_session_t *sess, aim_module_t *mod, struct command_rx_struct *rx, aim_modsnac_t *snac, unsigned char *data, int datalen)
{
return motd(sess, mod, rx, snac, data, datalen);
else if (snac->subtype == 0x0018)
return hostversions(sess, mod, rx, snac, data, datalen);
return motd(sess, mod, rx, snac, data, datalen);
else if (snac->subtype == 0x0018)
return hostversions(sess, mod, rx, snac, data, datalen);
+ else if (snac->subtype == 0x001f)
+ return memrequest(sess, mod, rx, snac, data, datalen);
int i;
int selstat = 0;
static int faimtest_mode = 0;
int i;
int selstat = 0;
static int faimtest_mode = 0;
+ struct timeval tv;
+ time_t lastnop = 0;
screenname = getenv("SCREENNAME");
password = getenv("PASSWORD");
screenname = getenv("SCREENNAME");
password = getenv("PASSWORD");
- waitingconn = aim_select(&aimsess, NULL, &selstat);
+
+ tv.tv_sec = 5;
+ tv.tv_usec = 0;
+
+ waitingconn = aim_select(&aimsess, &tv, &selstat);
+
+ if (connected && ((time(NULL) - lastnop) > 30)) {
+ lastnop = time(NULL);
+ dprintf("sending NOP\n");
+ aim_flap_nop(&aimsess, aim_getconn_type(&aimsess, AIM_CONN_TYPE_BOS));
+ }
if (selstat == -1) { /* error */
keepgoing = 0; /* fall through */
} else if (selstat == 0) { /* no events pending */
if (selstat == -1) { /* error */
keepgoing = 0; /* fall through */
} else if (selstat == 0) { /* no events pending */
} else if (selstat == 1) { /* outgoing data pending */
aim_tx_flushqueue(&aimsess);
} else if (selstat == 2) { /* incoming data pending */
} else if (selstat == 1) { /* outgoing data pending */
aim_tx_flushqueue(&aimsess);
} else if (selstat == 2) { /* incoming data pending */
aim_conn_addhandler(sess, bosconn, 0x0009, 0x0001, faimtest_parse_genericerr, 0);
aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_CONNERR, faimtest_parse_connerr, 0);
aim_conn_addhandler(sess, bosconn, 0x0009, 0x0001, faimtest_parse_genericerr, 0);
aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_CONNERR, faimtest_parse_connerr, 0);
+ aim_conn_addhandler(sess, bosconn, 0xffff, 0xffff, faimtest_parse_unknown, 0);
aim_auth_sendcookie(sess, bosconn, cookie);
aim_auth_sendcookie(sess, bosconn, cookie);
dvprintf("faimtest: connerr: Code 0x%04x: %s\n", code, msg);
aim_conn_kill(sess, &command->conn); /* this will break the main loop */
dvprintf("faimtest: connerr: Code 0x%04x: %s\n", code, msg);
aim_conn_kill(sess, &command->conn); /* this will break the main loop */