X-Git-Url: http://andersk.mit.edu/gitweb/libfaim.git/blobdiff_plain/c5f5b7f1a4a3183ecc03d3a2e9386aed32d4302b..8722e78220c0ae049753eb49db99ebf1216aff40:/utils/faimtest/faimtest.c diff --git a/utils/faimtest/faimtest.c b/utils/faimtest/faimtest.c index d49d8b4..041b08f 100644 --- a/utils/faimtest/faimtest.c +++ b/utils/faimtest/faimtest.c @@ -317,6 +317,8 @@ int main(int argc, char **argv) dvprintf("connection error (type 0x%04x:0x%04x)\n", waitingconn->type, waitingconn->subtype); /* we should have callbacks for all these, else the library will do the conn_kill for us. */ if (waitingconn->type == AIM_CONN_TYPE_RENDEZVOUS) { + if (waitingconn->subtype == AIM_CONN_SUBTYPE_OFT_DIRECTIM) + dvprintf("disconnected from %s\n", aim_directim_getsn(waitingconn)); aim_conn_kill(&aimsess, &waitingconn); } else aim_conn_kill(&aimsess, &waitingconn); @@ -399,7 +401,6 @@ int faimtest_parse_connerr(aim_session_t *sess, aim_frame_t *fr, ...) return 1; } -#if 0 static int faimtest_rateresp_auth(aim_session_t *sess, aim_frame_t *fr, ...) { @@ -425,9 +426,6 @@ int faimtest_accountconfirm(aim_session_t *sess, aim_frame_t *fr, ...) return 1; } - -#endif - #if 0 /* * This kind of function is really not legal in the new bstream way... @@ -454,6 +452,28 @@ int faimtest_parse_unknown(aim_session_t *sess, aim_frame_t *fr, ...) } #endif +static int faimtest_infochange(aim_session_t *sess, aim_frame_t *fr, ...) +{ + fu16_t change = 0, perms, type; + int length, str; + char *val; + va_list ap; + + va_start(ap, fr); + change = va_arg(ap, int); + perms = va_arg(ap, fu16_t); + type = va_arg(ap, fu16_t); + length = va_arg(ap, int); + val = va_arg(ap, char *); + str = va_arg(ap, int); + va_end(ap); + + dvprintf("info%s: perms = %d, type = %x, length = %d, val = %s\n", change?" change":"", perms, type, length, str?val:"(not string)"); + + return 1; +} + + int faimtest_handleredirect(aim_session_t *sess, aim_frame_t *fr, ...) { va_list ap; @@ -484,7 +504,6 @@ int faimtest_handleredirect(aim_session_t *sess, aim_frame_t *fr, ...) } #endif } else if (serviceid == 0x0007) { /* Authorizer */ -#if 0 aim_conn_t *tstconn; tstconn = aim_newconn(sess, AIM_CONN_TYPE_AUTH, ip); @@ -494,8 +513,8 @@ int faimtest_handleredirect(aim_session_t *sess, aim_frame_t *fr, ...) aim_conn_addhandler(sess, tstconn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_FLAPVER, faimtest_flapversion, 0); aim_conn_addhandler(sess, tstconn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_CONNCOMPLETE, faimtest_conncomplete, 0); aim_conn_addhandler(sess, tstconn, 0x0001, 0x0003, faimtest_serverready, 0); - aim_conn_addhandler(sess, tstconn, 0x0001, 0x0007, faimtest_rateresp, 0); /* rate info */ - aim_conn_addhandler(sess, tstconn, AIM_CB_FAM_GEN, 0x0018, faimtest_hostversions, 0); + aim_conn_addhandler(sess, tstconn, 0x0001, 0x0007, faimtest_rateresp_auth, 0); /* rate info */ + //aim_conn_addhandler(sess, tstconn, AIM_CB_FAM_GEN, 0x0018, faimtest_hostversions, 0); aim_conn_addhandler(sess, tstconn, 0x0007, 0x0007, faimtest_accountconfirm, 0); aim_conn_addhandler(sess, tstconn, 0x0007, 0x0003, faimtest_infochange, 0); aim_conn_addhandler(sess, tstconn, 0x0007, 0x0005, faimtest_infochange, 0); @@ -503,7 +522,6 @@ int faimtest_handleredirect(aim_session_t *sess, aim_frame_t *fr, ...) aim_auth_sendcookie(sess, tstconn, cookie); dprintf("sent cookie to authorizer host\n"); } -#endif } else if (serviceid == 0x000d) { /* ChatNav */ chatnav_redirect(sess, ip, cookie); @@ -540,7 +558,7 @@ static int faimtest_rateresp_bos(aim_session_t *sess, aim_frame_t *fr, ...) aim_bos_ackrateresp(sess, fr->conn); /* ack rate info response */ aim_bos_reqpersonalinfo(sess, fr->conn); aim_bos_reqlocaterights(sess, fr->conn); - aim_bos_setprofile(sess, fr->conn, profile, awaymsg, AIM_CAPS_BUDDYICON | AIM_CAPS_CHAT | AIM_CAPS_GETFILE | AIM_CAPS_SENDFILE | AIM_CAPS_IMIMAGE /*| AIM_CAPS_GAMES | AIM_CAPS_SAVESTOCKS*/); + aim_bos_setprofile(sess, fr->conn, profile, awaymsg, AIM_CAPS_BUDDYICON | AIM_CAPS_CHAT | AIM_CAPS_GETFILE | AIM_CAPS_SENDFILE | AIM_CAPS_IMIMAGE | AIM_CAPS_GAMES | AIM_CAPS_SAVESTOCKS | AIM_CAPS_SENDBUDDYLIST); aim_bos_reqbuddyrights(sess, fr->conn); /* send the buddy list and profile (required, even if empty) */ @@ -1057,9 +1075,9 @@ static int faimtest_handlecmd(aim_session_t *sess, aim_conn_t *conn, struct aim_ directim_start(sess, conn, userinfo->sn); - } else if(!(strncmp(tmpstr, "lookup", 6))) { + } else if(strstr(tmpstr, "lookup")) { - aim_usersearch_address(sess, conn, tmpstr+7); + aim_usersearch_address(sess, conn, "mid@auk.cx"); } else if (!strncmp(tmpstr, "reqsendmsg", 10)) { @@ -1320,31 +1338,6 @@ static int faimtest_parse_incoming_im(aim_session_t *sess, aim_frame_t *fr, ...) return 1; } -#ifdef MID_REWROTE_ALL_THE_CRAP -static int faimtest_infochange(aim_session_t *sess, aim_frame_t *fr, ...) -{ - fu16_t change = 0, perms, type; - int length, str; - char *val; - va_list ap; - - va_start(ap, fr); - perms = va_arg(ap, fu16_t); - type = va_arg(ap, fu16_t); - length = va_arg(ap, int); - val = va_arg(ap, char *); - str = va_arg(ap, int); - va_end(ap); - - if (aimutil_get16(command->data+2) == 0x0005) - change = 1; - - dvprintf("info%s: perms = %d, type = %x, length = %d, val = %s\n", change?" change":"", perms, type, length, str?val:"(not string)"); - - return 1; -} -#endif - static int faimtest_parse_oncoming(aim_session_t *sess, aim_frame_t *fr, ...) { struct aim_userinfo_s *userinfo;