aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/oscar/stats.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/oscar/stats.c')
-rw-r--r--protocols/oscar/stats.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/protocols/oscar/stats.c b/protocols/oscar/stats.c
new file mode 100644
index 00000000..affd82fe
--- /dev/null
+++ b/protocols/oscar/stats.c
@@ -0,0 +1,38 @@
+
+#include <aim.h>
+
+static int reportinterval(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
+{
+ guint16 interval;
+ aim_rxcallback_t userfunc;
+
+ interval = aimbs_get16(bs);
+
+ if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
+ return userfunc(sess, rx, interval);
+
+ return 0;
+}
+
+static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
+{
+
+ if (snac->subtype == 0x0002)
+ return reportinterval(sess, mod, rx, snac, bs);
+
+ return 0;
+}
+
+int stats_modfirst(aim_session_t *sess, aim_module_t *mod)
+{
+
+ mod->family = 0x000b;
+ mod->version = 0x0001;
+ mod->toolid = 0x0104;
+ mod->toolversion = 0x0001;
+ mod->flags = 0;
+ strncpy(mod->name, "stats", sizeof(mod->name));
+ mod->snachandler = snachandler;
+
+ return 0;
+}