Changeset cf02dd6 for libfaim/service.c


Ignore:
Timestamp:
Dec 10, 2003, 3:20:45 PM (20 years ago)
Author:
James M. Kretchmar <kretch@mit.edu>
Branches:
master, barnowl_perlaim, debian, owl, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
Children:
b1fe407
Parents:
8c46404
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libfaim/service.c

    re374dee rcf02dd6  
    109109        memset(&redir, 0, sizeof(redir));
    110110
    111         tlvlist = aim_readtlvchain(bs);
    112 
    113         if (!aim_gettlv(tlvlist, 0x000d, 1) ||
    114                         !aim_gettlv(tlvlist, 0x0005, 1) ||
    115                         !aim_gettlv(tlvlist, 0x0006, 1)) {
    116                 aim_freetlvchain(&tlvlist);
     111        tlvlist = aim_tlvlist_read(bs);
     112
     113        if (!aim_tlv_gettlv(tlvlist, 0x000d, 1) ||
     114                        !aim_tlv_gettlv(tlvlist, 0x0005, 1) ||
     115                        !aim_tlv_gettlv(tlvlist, 0x0006, 1)) {
     116                aim_tlvlist_free(&tlvlist);
    117117                return 0;
    118118        }
    119119
    120         redir.group = aim_gettlv16(tlvlist, 0x000d, 1);
    121         redir.ip = aim_gettlv_str(tlvlist, 0x0005, 1);
    122         redir.cookielen = aim_gettlv(tlvlist, 0x0006, 1)->length;
    123         redir.cookie = aim_gettlv_str(tlvlist, 0x0006, 1);
     120        redir.group = aim_tlv_get16(tlvlist, 0x000d, 1);
     121        redir.ip = aim_tlv_getstr(tlvlist, 0x0005, 1);
     122        redir.cookielen = aim_tlv_gettlv(tlvlist, 0x0006, 1)->length;
     123        redir.cookie = aim_tlv_getstr(tlvlist, 0x0006, 1);
    124124
    125125        /* Fetch original SNAC so we can get csi if needed */
     
    144144        free(origsnac);
    145145
    146         aim_freetlvchain(&tlvlist);
     146        aim_tlvlist_free(&tlvlist);
    147147
    148148        return ret;
     
    152152faim_internal int aim_reqrates(aim_session_t *sess, aim_conn_t *conn)
    153153{
    154         return aim_genericreq_n(sess, conn, 0x0001, 0x0006);
     154        return aim_genericreq_n_snacid(sess, conn, 0x0001, 0x0006);
    155155}
    156156
     
    492492faim_export int aim_reqpersonalinfo(aim_session_t *sess, aim_conn_t *conn)
    493493{
    494         return aim_genericreq_n(sess, conn, 0x0001, 0x000e);
     494        return aim_genericreq_n_snacid(sess, conn, 0x0001, 0x000e);
    495495}
    496496
     
    544544 *
    545545 */
    546 faim_export int aim_bos_setidle(aim_session_t *sess, aim_conn_t *conn, fu32_t idletime)
    547 {
     546faim_export int aim_srv_setidle(aim_session_t *sess, fu32_t idletime)
     547{
     548        aim_conn_t *conn;
     549
     550        if (!sess || !(conn = aim_conn_findbygroup(sess, AIM_CB_FAM_BOS)))
     551                return -EINVAL;
     552
    548553        return aim_genericreq_l(sess, conn, 0x0001, 0x0011, &idletime);
    549554}
     
    586591        }
    587592
    588         tl = aim_readtlvchain(bs);
    589 
    590         if (aim_gettlv(tl, 0x0005, 1))
    591                 ip = aim_gettlv_str(tl, 0x0005, 1);
    592 
    593         cktlv = aim_gettlv(tl, 0x0006, 1);
     593        tl = aim_tlvlist_read(bs);
     594
     595        if (aim_tlv_gettlv(tl, 0x0005, 1))
     596                ip = aim_tlv_getstr(tl, 0x0005, 1);
     597
     598        cktlv = aim_tlv_gettlv(tl, 0x0006, 1);
    594599
    595600        if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
    596601                ret = userfunc(sess, rx, ip, cktlv ? cktlv->value : NULL);
    597602
    598         aim_freetlvchain(&tl);
     603        aim_tlvlist_free(&tl);
    599604        free(ip);
    600605
     
    627632         * TLVs follow
    628633         */
    629         tlvlist = aim_readtlvchain(bs);
    630 
    631         msg = aim_gettlv_str(tlvlist, 0x000b, 1);
     634        tlvlist = aim_tlvlist_read(bs);
     635
     636        msg = aim_tlv_getstr(tlvlist, 0x000b, 1);
    632637
    633638        if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
     
    636641        free(msg);
    637642
    638         aim_freetlvchain(&tlvlist);
     643        aim_tlvlist_free(&tlvlist);
    639644
    640645        return ret;
     
    661666 * really necessary.
    662667 *
     668 * Wha?  No?  Since when?  I think WinAIM sends an empty channel 3
     669 * SNAC as a no-op...
    663670 */
    664671faim_export int aim_nop(aim_session_t *sess, aim_conn_t *conn)
     
    761768        aim_putsnac(&fr->data, 0x0001, 0x001e, 0x0000, snacid);
    762769       
    763         aim_addtlvtochain32(&tl, 0x0006, data);
    764         aim_writetlvchain(&fr->data, &tl);
    765         aim_freetlvchain(&tl);
     770        aim_tlvlist_add_32(&tl, 0x0006, data);
     771        aim_tlvlist_write(&fr->data, &tl);
     772        aim_tlvlist_free(&tl);
    766773       
    767774        aim_tx_enqueue(sess, fr);
     
    788795                return -EINVAL;
    789796
    790         if (msg) {
     797        if (msg != NULL) {
    791798                if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + 4 + strlen(msg) + 8)))
    792799                        return -ENOMEM;
     
    795802                aim_putsnac(&fr->data, 0x0001, 0x001e, 0x0000, snacid);
    796803
    797                 aimbs_put16(&fr->data, 0x001d);
    798                 aimbs_put16(&fr->data, strlen(msg)+8);
     804                aimbs_put16(&fr->data, 0x001d); /* userinfo TLV type */
     805                aimbs_put16(&fr->data, strlen(msg)+8); /* total length of userinfo TLV data */
    799806                aimbs_put16(&fr->data, 0x0002);
    800807                aimbs_put8(&fr->data, 0x04);
     
    871878        offset = aimbs_get32(bs);
    872879        len = aimbs_get32(bs);
    873         list = aim_readtlvchain(bs);
    874 
    875         modname = aim_gettlv_str(list, 0x0001, 1);
     880        list = aim_tlvlist_read(bs);
     881
     882        modname = aim_tlv_getstr(list, 0x0001, 1);
    876883
    877884        faimdprintf(sess, 1, "data at 0x%08lx (%d bytes) of requested\n", offset, len, modname ? modname : "aim.exe");
     
    881888
    882889        free(modname);
    883         aim_freetlvchain(&list);
     890        aim_tlvlist_free(&list);
    884891
    885892        return ret;
     
    10681075}
    10691076
    1070 faim_internal int general_modfirst(aim_session_t *sess, aim_module_t *mod)
     1077faim_internal int service_modfirst(aim_session_t *sess, aim_module_t *mod)
    10711078{
    10721079
     
    10761083        mod->toolversion = 0x0629;
    10771084        mod->flags = 0;
    1078         strncpy(mod->name, "general", sizeof(mod->name));
     1085        strncpy(mod->name, "service", sizeof(mod->name));
    10791086        mod->snachandler = snachandler;
    10801087
Note: See TracChangeset for help on using the changeset viewer.