X-Git-Url: http://andersk.mit.edu/gitweb/libfaim.git/blobdiff_plain/9f1a40132a2c6642e3544205c31c091051127ae0..HEAD:/src/stats.c diff --git a/src/stats.c b/src/stats.c index 4f7f741..ae3101e 100644 --- a/src/stats.c +++ b/src/stats.c @@ -2,43 +2,36 @@ #define FAIM_INTERNAL #include -static int reportinterval(struct aim_session_t *sess, aim_module_t *mod, struct command_rx_struct *rx, aim_modsnac_t *snac, unsigned char *data, int datalen) +static int reportinterval(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { - unsigned short interval; - rxcallback_t userfunc; + fu16_t interval; + aim_rxcallback_t userfunc; - interval = aimutil_get16(data); + interval = aimbs_get16(bs); - if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) - return userfunc(sess, rx, interval); + if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) + return userfunc(sess, rx, interval); - return 0; + return 0; } -static int snachandler(struct aim_session_t *sess, aim_module_t *mod, struct command_rx_struct *rx, aim_modsnac_t *snac, unsigned char *data, int datalen) +static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { - faimdprintf(sess, 0, "%s: snachandler: got %x/%x\n", mod->name, snac->family, snac->subtype); + if (snac->subtype == 0x0002) + return reportinterval(sess, mod, rx, snac, bs); - if (snac->family != mod->family) - return 0; - - if (snac->subtype == 0x0001) - ; - else if (snac->subtype == 0x0002) - return reportinterval(sess, mod, rx, snac, data, datalen); - - return 0; + return 0; } -faim_internal int stats_modfirst(struct aim_session_t *sess, aim_module_t *mod) +faim_internal int stats_modfirst(aim_session_t *sess, aim_module_t *mod) { - mod->family = 0x000b; - mod->version = 0x0000; - mod->flags = 0; - strncpy(mod->name, "stats", sizeof(mod->name)); - mod->snachandler = snachandler; + mod->family = 0x000b; + mod->version = 0x0000; + mod->flags = 0; + strncpy(mod->name, "stats", sizeof(mod->name)); + mod->snachandler = snachandler; - return 0; + return 0; }