Changeset cf02dd6 for libfaim/service.c
- Timestamp:
- Dec 10, 2003, 3:20:45 PM (19 years ago)
- Branches:
- master, barnowl_perlaim, debian, owl, 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/service.c
re374dee rcf02dd6 109 109 memset(&redir, 0, sizeof(redir)); 110 110 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); 117 117 return 0; 118 118 } 119 119 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); 124 124 125 125 /* Fetch original SNAC so we can get csi if needed */ … … 144 144 free(origsnac); 145 145 146 aim_ freetlvchain(&tlvlist);146 aim_tlvlist_free(&tlvlist); 147 147 148 148 return ret; … … 152 152 faim_internal int aim_reqrates(aim_session_t *sess, aim_conn_t *conn) 153 153 { 154 return aim_genericreq_n (sess, conn, 0x0001, 0x0006);154 return aim_genericreq_n_snacid(sess, conn, 0x0001, 0x0006); 155 155 } 156 156 … … 492 492 faim_export int aim_reqpersonalinfo(aim_session_t *sess, aim_conn_t *conn) 493 493 { 494 return aim_genericreq_n (sess, conn, 0x0001, 0x000e);494 return aim_genericreq_n_snacid(sess, conn, 0x0001, 0x000e); 495 495 } 496 496 … … 544 544 * 545 545 */ 546 faim_export int aim_bos_setidle(aim_session_t *sess, aim_conn_t *conn, fu32_t idletime) 547 { 546 faim_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 548 553 return aim_genericreq_l(sess, conn, 0x0001, 0x0011, &idletime); 549 554 } … … 586 591 } 587 592 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); 594 599 595 600 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 596 601 ret = userfunc(sess, rx, ip, cktlv ? cktlv->value : NULL); 597 602 598 aim_ freetlvchain(&tl);603 aim_tlvlist_free(&tl); 599 604 free(ip); 600 605 … … 627 632 * TLVs follow 628 633 */ 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); 632 637 633 638 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) … … 636 641 free(msg); 637 642 638 aim_ freetlvchain(&tlvlist);643 aim_tlvlist_free(&tlvlist); 639 644 640 645 return ret; … … 661 666 * really necessary. 662 667 * 668 * Wha? No? Since when? I think WinAIM sends an empty channel 3 669 * SNAC as a no-op... 663 670 */ 664 671 faim_export int aim_nop(aim_session_t *sess, aim_conn_t *conn) … … 761 768 aim_putsnac(&fr->data, 0x0001, 0x001e, 0x0000, snacid); 762 769 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); 766 773 767 774 aim_tx_enqueue(sess, fr); … … 788 795 return -EINVAL; 789 796 790 if (msg ) {797 if (msg != NULL) { 791 798 if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + 4 + strlen(msg) + 8))) 792 799 return -ENOMEM; … … 795 802 aim_putsnac(&fr->data, 0x0001, 0x001e, 0x0000, snacid); 796 803 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 */ 799 806 aimbs_put16(&fr->data, 0x0002); 800 807 aimbs_put8(&fr->data, 0x04); … … 871 878 offset = aimbs_get32(bs); 872 879 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); 876 883 877 884 faimdprintf(sess, 1, "data at 0x%08lx (%d bytes) of requested\n", offset, len, modname ? modname : "aim.exe"); … … 881 888 882 889 free(modname); 883 aim_ freetlvchain(&list);890 aim_tlvlist_free(&list); 884 891 885 892 return ret; … … 1068 1075 } 1069 1076 1070 faim_internal int general_modfirst(aim_session_t *sess, aim_module_t *mod)1077 faim_internal int service_modfirst(aim_session_t *sess, aim_module_t *mod) 1071 1078 { 1072 1079 … … 1076 1083 mod->toolversion = 0x0629; 1077 1084 mod->flags = 0; 1078 strncpy(mod->name, " general", sizeof(mod->name));1085 strncpy(mod->name, "service", sizeof(mod->name)); 1079 1086 mod->snachandler = snachandler; 1080 1087
Note: See TracChangeset
for help on using the changeset viewer.