src/protocols/oscar/popups.c

Sat, 12 Nov 2005 15:27:41 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sat, 12 Nov 2005 15:27:41 +0000
changeset 12050
a7d5a2430722
parent 7167
9cfb68a44e17
permissions
-rw-r--r--

[gaim-migrate @ 14345]
One parts doxygen one parts whitespace

2672
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
1 /*
3952
d13e1fde68d8 [gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents: 2673
diff changeset
2 * Family 0x0008 - Popups.
d13e1fde68d8 [gaim-migrate @ 4133]
Mark Doliner <markdoliner@pidgin.im>
parents: 2673
diff changeset
3 *
2673
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
4 * Popups are just what it sounds like. They're a way for the server to
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
5 * open up an informative box on the client's screen.
2672
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
6 */
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
7
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
8 #define FAIM_INTERNAL
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
9 #include <aim.h>
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
10
2673
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
11 /*
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
12 * This is all there is to it.
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
13 *
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
14 * The message is probably HTML.
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
15 *
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
16 */
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
17 static int parsepopup(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
18 {
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
19 aim_rxcallback_t userfunc;
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
20 aim_tlvlist_t *tl;
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
21 int ret = 0;
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
22 char *msg, *url;
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
23 fu16_t width, height, delay;
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
24
7167
9cfb68a44e17 [gaim-migrate @ 7734]
Mark Doliner <markdoliner@pidgin.im>
parents: 3952
diff changeset
25 tl = aim_tlvlist_read(bs);
2673
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
26
7167
9cfb68a44e17 [gaim-migrate @ 7734]
Mark Doliner <markdoliner@pidgin.im>
parents: 3952
diff changeset
27 msg = aim_tlv_getstr(tl, 0x0001, 1);
9cfb68a44e17 [gaim-migrate @ 7734]
Mark Doliner <markdoliner@pidgin.im>
parents: 3952
diff changeset
28 url = aim_tlv_getstr(tl, 0x0002, 1);
9cfb68a44e17 [gaim-migrate @ 7734]
Mark Doliner <markdoliner@pidgin.im>
parents: 3952
diff changeset
29 width = aim_tlv_get16(tl, 0x0003, 1);
9cfb68a44e17 [gaim-migrate @ 7734]
Mark Doliner <markdoliner@pidgin.im>
parents: 3952
diff changeset
30 height = aim_tlv_get16(tl, 0x0004, 1);
9cfb68a44e17 [gaim-migrate @ 7734]
Mark Doliner <markdoliner@pidgin.im>
parents: 3952
diff changeset
31 delay = aim_tlv_get16(tl, 0x0005, 1);
2673
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
32
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
33 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
34 ret = userfunc(sess, rx, msg, url, width, height, delay);
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
35
7167
9cfb68a44e17 [gaim-migrate @ 7734]
Mark Doliner <markdoliner@pidgin.im>
parents: 3952
diff changeset
36 aim_tlvlist_free(&tl);
2673
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
37 free(msg);
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
38 free(url);
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
39
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
40 return ret;
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
41 }
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
42
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
43 static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
44 {
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
45
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
46 if (snac->subtype == 0x0002)
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
47 return parsepopup(sess, mod, rx, snac, bs);
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
48
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
49 return 0;
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
50 }
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
51
2672
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
52 faim_internal int popups_modfirst(aim_session_t *sess, aim_module_t *mod)
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
53 {
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
54
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
55 mod->family = 0x0008;
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
56 mod->version = 0x0001;
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
57 mod->toolid = 0x0104;
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
58 mod->toolversion = 0x0001;
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
59 mod->flags = 0;
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
60 strncpy(mod->name, "popups", sizeof(mod->name));
2673
84bb25b76700 [gaim-migrate @ 2686]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2672
diff changeset
61 mod->snachandler = snachandler;
2672
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
62
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
63 return 0;
5c9b7617a1f3 [gaim-migrate @ 2685]
Adam Fritzler <mid@auk.cx>
parents:
diff changeset
64 }

mercurial