Changeset cf02dd6 for libfaim/chat.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/chat.c

    re374dee rcf02dd6  
    104104        aimbs_put16(&bs, instance);
    105105
    106         aim_addtlvtochain_raw(list, type, aim_bstream_curpos(&bs), buf);
     106        aim_tlvlist_add_raw(list, type, aim_bstream_curpos(&bs), buf);
    107107
    108108        free(buf);
     
    144144
    145145        aim_addtlvtochain_chatroom(&tl, 0x0001, exchange, roomname, instance);
    146         aim_writetlvchain(&fr->data, &tl);
    147         aim_freetlvchain(&tl);
     146        aim_tlvlist_write(&fr->data, &tl);
     147        aim_tlvlist_free(&tl);
    148148
    149149        aim_tx_enqueue(sess, fr);
     
    250250        aim_putcap(&hdrbs, AIM_CAPS_CHAT);
    251251
    252         aim_addtlvtochain16(&itl, 0x000a, 0x0001);
    253         aim_addtlvtochain_noval(&itl, 0x000f);
    254         aim_addtlvtochain_raw(&itl, 0x000c, strlen(msg), msg);
     252        aim_tlvlist_add_16(&itl, 0x000a, 0x0001);
     253        aim_tlvlist_add_noval(&itl, 0x000f);
     254        aim_tlvlist_add_raw(&itl, 0x000c, strlen(msg), msg);
    255255        aim_addtlvtochain_chatroom(&itl, 0x2711, exchange, roomname, instance);
    256         aim_writetlvchain(&hdrbs, &itl);
    257        
    258         aim_addtlvtochain_raw(&otl, 0x0005, aim_bstream_curpos(&hdrbs), hdr);
    259 
    260         aim_writetlvchain(&fr->data, &otl);
     256        aim_tlvlist_write(&hdrbs, &itl);
     257       
     258        aim_tlvlist_add_raw(&otl, 0x0005, aim_bstream_curpos(&hdrbs), hdr);
     259
     260        aim_tlvlist_write(&fr->data, &otl);
    261261
    262262        free(hdr);
    263         aim_freetlvchain(&itl);
    264         aim_freetlvchain(&otl);
     263        aim_tlvlist_free(&itl);
     264        aim_tlvlist_free(&otl);
    265265       
    266266        aim_tx_enqueue(sess, fr);
     
    308308         * Everything else are TLVs.
    309309         */
    310         tlvlist = aim_readtlvchain(bs);
     310        tlvlist = aim_tlvlist_read(bs);
    311311
    312312        /*
    313313         * TLV type 0x006a is the room name in Human Readable Form.
    314314         */
    315         if (aim_gettlv(tlvlist, 0x006a, 1))
    316                 roomname = aim_gettlv_str(tlvlist, 0x006a, 1);
     315        if (aim_tlv_gettlv(tlvlist, 0x006a, 1))
     316                roomname = aim_tlv_getstr(tlvlist, 0x006a, 1);
    317317
    318318        /*
    319319         * Type 0x006f: Number of occupants.
    320320         */
    321         if (aim_gettlv(tlvlist, 0x006f, 1))
    322                 usercount = aim_gettlv16(tlvlist, 0x006f, 1);
     321        if (aim_tlv_gettlv(tlvlist, 0x006f, 1))
     322                usercount = aim_tlv_get16(tlvlist, 0x006f, 1);
    323323
    324324        /*
    325325         * Type 0x0073:  Occupant list.
    326326         */
    327         if (aim_gettlv(tlvlist, 0x0073, 1)) {   
     327        if (aim_tlv_gettlv(tlvlist, 0x0073, 1)) {       
    328328                int curoccupant = 0;
    329329                aim_tlv_t *tmptlv;
    330330                aim_bstream_t occbs;
    331331
    332                 tmptlv = aim_gettlv(tlvlist, 0x0073, 1);
     332                tmptlv = aim_tlv_gettlv(tlvlist, 0x0073, 1);
    333333
    334334                /* Allocate enough userinfo structs for all occupants */
     
    344344         * Type 0x00c9: Flags. (AIM_CHATROOM_FLAG)
    345345         */
    346         if (aim_gettlv(tlvlist, 0x00c9, 1))
    347                 flags = aim_gettlv16(tlvlist, 0x00c9, 1);
     346        if (aim_tlv_gettlv(tlvlist, 0x00c9, 1))
     347                flags = aim_tlv_get16(tlvlist, 0x00c9, 1);
    348348
    349349        /*
    350350         * Type 0x00ca: Creation time (4 bytes)
    351351         */
    352         if (aim_gettlv(tlvlist, 0x00ca, 1))
    353                 creationtime = aim_gettlv32(tlvlist, 0x00ca, 1);
     352        if (aim_tlv_gettlv(tlvlist, 0x00ca, 1))
     353                creationtime = aim_tlv_get32(tlvlist, 0x00ca, 1);
    354354
    355355        /*
    356356         * Type 0x00d1: Maximum Message Length
    357357         */
    358         if (aim_gettlv(tlvlist, 0x00d1, 1))
    359                 maxmsglen = aim_gettlv16(tlvlist, 0x00d1, 1);
     358        if (aim_tlv_gettlv(tlvlist, 0x00d1, 1))
     359                maxmsglen = aim_tlv_get16(tlvlist, 0x00d1, 1);
    360360
    361361        /*
    362362         * Type 0x00d2: Unknown. (2 bytes)
    363363         */
    364         if (aim_gettlv(tlvlist, 0x00d2, 1))
    365                 unknown_d2 = aim_gettlv16(tlvlist, 0x00d2, 1);
     364        if (aim_tlv_gettlv(tlvlist, 0x00d2, 1))
     365                unknown_d2 = aim_tlv_get16(tlvlist, 0x00d2, 1);
    366366
    367367        /*
    368368         * Type 0x00d3: Room Description
    369369         */
    370         if (aim_gettlv(tlvlist, 0x00d3, 1))
    371                 roomdesc = aim_gettlv_str(tlvlist, 0x00d3, 1);
     370        if (aim_tlv_gettlv(tlvlist, 0x00d3, 1))
     371                roomdesc = aim_tlv_getstr(tlvlist, 0x00d3, 1);
    372372
    373373        /*
    374374         * Type 0x000d4: Unknown (flag only)
    375375         */
    376         if (aim_gettlv(tlvlist, 0x000d4, 1))
     376        if (aim_tlv_gettlv(tlvlist, 0x000d4, 1))
    377377                ;
    378378
     
    380380         * Type 0x00d5: Unknown. (1 byte)
    381381         */
    382         if (aim_gettlv(tlvlist, 0x00d5, 1))
    383                 unknown_d5 = aim_gettlv8(tlvlist, 0x00d5, 1);
     382        if (aim_tlv_gettlv(tlvlist, 0x00d5, 1))
     383                unknown_d5 = aim_tlv_get8(tlvlist, 0x00d5, 1);
    384384
    385385
     
    387387         * Type 0x00d6: Encoding 1 ("us-ascii")
    388388         */
    389         if (aim_gettlv(tlvlist, 0x000d6, 1))
     389        if (aim_tlv_gettlv(tlvlist, 0x000d6, 1))
    390390                ;
    391391       
     
    393393         * Type 0x00d7: Language 1 ("en")
    394394         */
    395         if (aim_gettlv(tlvlist, 0x000d7, 1))
     395        if (aim_tlv_gettlv(tlvlist, 0x000d7, 1))
    396396                ;
    397397
     
    399399         * Type 0x00d8: Encoding 2 ("us-ascii")
    400400         */
    401         if (aim_gettlv(tlvlist, 0x000d8, 1))
     401        if (aim_tlv_gettlv(tlvlist, 0x000d8, 1))
    402402                ;
    403403       
     
    405405         * Type 0x00d9: Language 2 ("en")
    406406         */
    407         if (aim_gettlv(tlvlist, 0x000d9, 1))
     407        if (aim_tlv_gettlv(tlvlist, 0x000d9, 1))
    408408                ;
    409409
     
    411411         * Type 0x00da: Maximum visible message length
    412412         */
    413         if (aim_gettlv(tlvlist, 0x000da, 1))
    414                 maxvisiblemsglen = aim_gettlv16(tlvlist, 0x00da, 1);
     413        if (aim_tlv_gettlv(tlvlist, 0x000da, 1))
     414                maxvisiblemsglen = aim_tlv_get16(tlvlist, 0x00da, 1);
    415415
    416416        if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) {
     
    438438        free(roomname);
    439439        free(roomdesc);
    440         aim_freetlvchain(&tlvlist);
     440        aim_tlvlist_free(&tlvlist);
    441441
    442442        return ret;
     
    516516         * Type 1: Flag meaning this message is destined to the room.
    517517         */
    518         aim_addtlvtochain_noval(&otl, 0x0001);
     518        aim_tlvlist_add_noval(&otl, 0x0001);
    519519
    520520        /*
     
    522522         */
    523523        if (!(flags & AIM_CHATFLAGS_NOREFLECT))
    524                 aim_addtlvtochain_noval(&otl, 0x0006);
     524                aim_tlvlist_add_noval(&otl, 0x0006);
    525525
    526526        /*
     
    528528         */
    529529        if (flags & AIM_CHATFLAGS_AWAY)
    530                 aim_addtlvtochain_noval(&otl, 0x0007);
     530                aim_tlvlist_add_noval(&otl, 0x0007);
    531531
    532532        /*
    533533         * SubTLV: Type 1: Message
    534534         */
    535         aim_addtlvtochain_raw(&itl, 0x0001, msglen, msg);
     535        aim_tlvlist_add_raw(&itl, 0x0001, msglen, msg);
    536536
    537537        /*
     
    542542         *
    543543         */
    544         aim_addtlvtochain_frozentlvlist(&otl, 0x0005, &itl);
    545 
    546         aim_writetlvchain(&fr->data, &otl);
    547        
    548         aim_freetlvchain(&itl);
    549         aim_freetlvchain(&otl);
     544        aim_tlvlist_add_frozentlvlist(&otl, 0x0005, &itl);
     545
     546        aim_tlvlist_write(&fr->data, &otl);
     547       
     548        aim_tlvlist_free(&itl);
     549        aim_tlvlist_free(&otl);
    550550       
    551551        aim_tx_enqueue(sess, fr);
     
    621621         * Start parsing TLVs right away.
    622622         */
    623         otl = aim_readtlvchain(bs);
     623        otl = aim_tlvlist_read(bs);
    624624
    625625        /*
    626626         * Type 0x0003: Source User Information
    627627         */
    628         if (aim_gettlv(otl, 0x0003, 1)) {
     628        if (aim_tlv_gettlv(otl, 0x0003, 1)) {
    629629                aim_tlv_t *userinfotlv;
    630630                aim_bstream_t tbs;
    631631
    632                 userinfotlv = aim_gettlv(otl, 0x0003, 1);
     632                userinfotlv = aim_tlv_gettlv(otl, 0x0003, 1);
    633633
    634634                aim_bstream_init(&tbs, userinfotlv->value, userinfotlv->length);
     
    640640         * room (as opposed to a whisper).
    641641         */
    642         if (aim_gettlv(otl, 0x0001, 1))
     642        if (aim_tlv_gettlv(otl, 0x0001, 1))
    643643                ;
    644644
     
    646646         * Type 0x0005: Message Block.  Conains more TLVs.
    647647         */
    648         if (aim_gettlv(otl, 0x0005, 1)) {
     648        if (aim_tlv_gettlv(otl, 0x0005, 1)) {
    649649                aim_tlvlist_t *itl;
    650650                aim_tlv_t *msgblock;
    651651                aim_bstream_t tbs;
    652652
    653                 msgblock = aim_gettlv(otl, 0x0005, 1);
     653                msgblock = aim_tlv_gettlv(otl, 0x0005, 1);
    654654                aim_bstream_init(&tbs, msgblock->value, msgblock->length);
    655                 itl = aim_readtlvchain(&tbs);
     655                itl = aim_tlvlist_read(&tbs);
    656656
    657657                /*
    658658                 * Type 0x0001: Message.
    659659                 */     
    660                 if (aim_gettlv(itl, 0x0001, 1))
    661                         msg = aim_gettlv_str(itl, 0x0001, 1);
    662 
    663                 aim_freetlvchain(&itl);
     660                if (aim_tlv_gettlv(itl, 0x0001, 1))
     661                        msg = aim_tlv_getstr(itl, 0x0001, 1);
     662
     663                aim_tlvlist_free(&itl);
    664664        }
    665665
     
    670670        free(cookie);
    671671        free(msg);
    672         aim_freetlvchain(&otl);
     672        aim_tlvlist_free(&otl);
    673673
    674674        return ret;
Note: See TracChangeset for help on using the changeset viewer.