]> andersk Git - libfaim.git/blob - src/stats.c
4f7f74190e9df123d7fa02f800d51765459f2b65
[libfaim.git] / src / stats.c
1
2 #define FAIM_INTERNAL
3 #include <aim.h>
4
5 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)
6 {
7   unsigned short interval;
8   rxcallback_t userfunc;
9
10   interval = aimutil_get16(data);
11
12   if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
13     return userfunc(sess, rx, interval);
14
15   return 0;
16 }
17
18 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)
19 {
20
21   faimdprintf(sess, 0, "%s: snachandler: got %x/%x\n", mod->name, snac->family, snac->subtype);
22
23   if (snac->family != mod->family)
24     return 0;
25
26   if (snac->subtype == 0x0001)
27     ;
28   else if (snac->subtype == 0x0002)
29     return reportinterval(sess, mod, rx, snac, data, datalen);
30
31   return 0;
32 }
33
34 faim_internal int stats_modfirst(struct aim_session_t *sess, aim_module_t *mod)
35 {
36
37   mod->family = 0x000b;
38   mod->version = 0x0000;
39   mod->flags = 0;
40   strncpy(mod->name, "stats", sizeof(mod->name));
41   mod->snachandler = snachandler;
42
43   return 0;
44 }
This page took 0.267273 seconds and 3 git commands to generate.