Changeset cf02dd6 for libfaim/chat.c
- Timestamp:
- Dec 10, 2003, 3:20:45 PM (21 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfaim/chat.c
re374dee rcf02dd6 104 104 aimbs_put16(&bs, instance); 105 105 106 aim_ addtlvtochain_raw(list, type, aim_bstream_curpos(&bs), buf);106 aim_tlvlist_add_raw(list, type, aim_bstream_curpos(&bs), buf); 107 107 108 108 free(buf); … … 144 144 145 145 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); 148 148 149 149 aim_tx_enqueue(sess, fr); … … 250 250 aim_putcap(&hdrbs, AIM_CAPS_CHAT); 251 251 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); 255 255 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); 261 261 262 262 free(hdr); 263 aim_ freetlvchain(&itl);264 aim_ freetlvchain(&otl);263 aim_tlvlist_free(&itl); 264 aim_tlvlist_free(&otl); 265 265 266 266 aim_tx_enqueue(sess, fr); … … 308 308 * Everything else are TLVs. 309 309 */ 310 tlvlist = aim_ readtlvchain(bs);310 tlvlist = aim_tlvlist_read(bs); 311 311 312 312 /* 313 313 * TLV type 0x006a is the room name in Human Readable Form. 314 314 */ 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); 317 317 318 318 /* 319 319 * Type 0x006f: Number of occupants. 320 320 */ 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); 323 323 324 324 /* 325 325 * Type 0x0073: Occupant list. 326 326 */ 327 if (aim_ gettlv(tlvlist, 0x0073, 1)) {327 if (aim_tlv_gettlv(tlvlist, 0x0073, 1)) { 328 328 int curoccupant = 0; 329 329 aim_tlv_t *tmptlv; 330 330 aim_bstream_t occbs; 331 331 332 tmptlv = aim_ gettlv(tlvlist, 0x0073, 1);332 tmptlv = aim_tlv_gettlv(tlvlist, 0x0073, 1); 333 333 334 334 /* Allocate enough userinfo structs for all occupants */ … … 344 344 * Type 0x00c9: Flags. (AIM_CHATROOM_FLAG) 345 345 */ 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); 348 348 349 349 /* 350 350 * Type 0x00ca: Creation time (4 bytes) 351 351 */ 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); 354 354 355 355 /* 356 356 * Type 0x00d1: Maximum Message Length 357 357 */ 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); 360 360 361 361 /* 362 362 * Type 0x00d2: Unknown. (2 bytes) 363 363 */ 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); 366 366 367 367 /* 368 368 * Type 0x00d3: Room Description 369 369 */ 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); 372 372 373 373 /* 374 374 * Type 0x000d4: Unknown (flag only) 375 375 */ 376 if (aim_ gettlv(tlvlist, 0x000d4, 1))376 if (aim_tlv_gettlv(tlvlist, 0x000d4, 1)) 377 377 ; 378 378 … … 380 380 * Type 0x00d5: Unknown. (1 byte) 381 381 */ 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); 384 384 385 385 … … 387 387 * Type 0x00d6: Encoding 1 ("us-ascii") 388 388 */ 389 if (aim_ gettlv(tlvlist, 0x000d6, 1))389 if (aim_tlv_gettlv(tlvlist, 0x000d6, 1)) 390 390 ; 391 391 … … 393 393 * Type 0x00d7: Language 1 ("en") 394 394 */ 395 if (aim_ gettlv(tlvlist, 0x000d7, 1))395 if (aim_tlv_gettlv(tlvlist, 0x000d7, 1)) 396 396 ; 397 397 … … 399 399 * Type 0x00d8: Encoding 2 ("us-ascii") 400 400 */ 401 if (aim_ gettlv(tlvlist, 0x000d8, 1))401 if (aim_tlv_gettlv(tlvlist, 0x000d8, 1)) 402 402 ; 403 403 … … 405 405 * Type 0x00d9: Language 2 ("en") 406 406 */ 407 if (aim_ gettlv(tlvlist, 0x000d9, 1))407 if (aim_tlv_gettlv(tlvlist, 0x000d9, 1)) 408 408 ; 409 409 … … 411 411 * Type 0x00da: Maximum visible message length 412 412 */ 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); 415 415 416 416 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) { … … 438 438 free(roomname); 439 439 free(roomdesc); 440 aim_ freetlvchain(&tlvlist);440 aim_tlvlist_free(&tlvlist); 441 441 442 442 return ret; … … 516 516 * Type 1: Flag meaning this message is destined to the room. 517 517 */ 518 aim_ addtlvtochain_noval(&otl, 0x0001);518 aim_tlvlist_add_noval(&otl, 0x0001); 519 519 520 520 /* … … 522 522 */ 523 523 if (!(flags & AIM_CHATFLAGS_NOREFLECT)) 524 aim_ addtlvtochain_noval(&otl, 0x0006);524 aim_tlvlist_add_noval(&otl, 0x0006); 525 525 526 526 /* … … 528 528 */ 529 529 if (flags & AIM_CHATFLAGS_AWAY) 530 aim_ addtlvtochain_noval(&otl, 0x0007);530 aim_tlvlist_add_noval(&otl, 0x0007); 531 531 532 532 /* 533 533 * SubTLV: Type 1: Message 534 534 */ 535 aim_ addtlvtochain_raw(&itl, 0x0001, msglen, msg);535 aim_tlvlist_add_raw(&itl, 0x0001, msglen, msg); 536 536 537 537 /* … … 542 542 * 543 543 */ 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); 550 550 551 551 aim_tx_enqueue(sess, fr); … … 621 621 * Start parsing TLVs right away. 622 622 */ 623 otl = aim_ readtlvchain(bs);623 otl = aim_tlvlist_read(bs); 624 624 625 625 /* 626 626 * Type 0x0003: Source User Information 627 627 */ 628 if (aim_ gettlv(otl, 0x0003, 1)) {628 if (aim_tlv_gettlv(otl, 0x0003, 1)) { 629 629 aim_tlv_t *userinfotlv; 630 630 aim_bstream_t tbs; 631 631 632 userinfotlv = aim_ gettlv(otl, 0x0003, 1);632 userinfotlv = aim_tlv_gettlv(otl, 0x0003, 1); 633 633 634 634 aim_bstream_init(&tbs, userinfotlv->value, userinfotlv->length); … … 640 640 * room (as opposed to a whisper). 641 641 */ 642 if (aim_ gettlv(otl, 0x0001, 1))642 if (aim_tlv_gettlv(otl, 0x0001, 1)) 643 643 ; 644 644 … … 646 646 * Type 0x0005: Message Block. Conains more TLVs. 647 647 */ 648 if (aim_ gettlv(otl, 0x0005, 1)) {648 if (aim_tlv_gettlv(otl, 0x0005, 1)) { 649 649 aim_tlvlist_t *itl; 650 650 aim_tlv_t *msgblock; 651 651 aim_bstream_t tbs; 652 652 653 msgblock = aim_ gettlv(otl, 0x0005, 1);653 msgblock = aim_tlv_gettlv(otl, 0x0005, 1); 654 654 aim_bstream_init(&tbs, msgblock->value, msgblock->length); 655 itl = aim_ readtlvchain(&tbs);655 itl = aim_tlvlist_read(&tbs); 656 656 657 657 /* 658 658 * Type 0x0001: Message. 659 659 */ 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); 664 664 } 665 665 … … 670 670 free(cookie); 671 671 free(msg); 672 aim_ freetlvchain(&otl);672 aim_tlvlist_free(&otl); 673 673 674 674 return ret;
Note: See TracChangeset
for help on using the changeset viewer.