Mercurial > pidgin.yaz
diff libfaim/aim_buddylist.c @ 835:88f8f98de02d
[gaim-migrate @ 845]
libfaim changes. should improve reliablity and stability.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Sun, 03 Sep 2000 23:22:05 +0000 |
parents | 58106806ac2b |
children | 595ac7759563 |
line wrap: on
line diff
--- a/libfaim/aim_buddylist.c Sat Sep 02 12:46:05 2000 +0000 +++ b/libfaim/aim_buddylist.c Sun Sep 03 23:22:05 2000 +0000 @@ -86,3 +86,43 @@ return( sess->snac_nextid++ ); } +int aim_parse_buddyrights(struct aim_session_t *sess, + struct command_rx_struct *command, ...) +{ + rxcallback_t userfunc = NULL; + int ret=1; + struct aim_tlvlist_t *tlvlist; + struct aim_tlv_t *tlv; + unsigned short maxbuddies = 0, maxwatchers = 0; + + /* + * TLVs follow + */ + if (!(tlvlist = aim_readtlvchain(command->data+10, command->commandlen-10))) + return ret; + + /* + * TLV type 0x0001: Maximum number of buddies. + */ + if ((tlv = aim_gettlv(tlvlist, 0x0001, 1))) { + maxbuddies = aimutil_get16(tlv->value); + } + + /* + * TLV type 0x0002: Maximum number of watchers. + * + * XXX: what the hell is a watcher? + * + */ + if ((tlv = aim_gettlv(tlvlist, 0x0002, 1))) { + maxwatchers = aimutil_get16(tlv->value); + } + + userfunc = aim_callhandler(command->conn, 0x0003, 0x0003); + if (userfunc) + ret = userfunc(sess, command, maxbuddies, maxwatchers); + + aim_freetlvchain(&tlvlist); + + return ret; +}