Tue, 13 Jan 2004 05:44:37 +0000
[gaim-migrate @ 8791]
Give a nice little warning if you add an AIM or ICQ buddy with an invalid
name. I'm thinking some of those bug reports on SF about "Could not add
buddy with no name" are caused by this. Hopefully. Sometime before the
next release I'll probably actually remove invalid people from the local
list.
Also recognize the WinAIM Video and Camera caps.
| 2672 | 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 | 6 | */ |
| 7 | ||
| 8 | #define FAIM_INTERNAL | |
| 9 | #include <aim.h> | |
| 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 | 52 | faim_internal int popups_modfirst(aim_session_t *sess, aim_module_t *mod) |
| 53 | { | |
| 54 | ||
| 55 | mod->family = 0x0008; | |
| 56 | mod->version = 0x0001; | |
| 57 | mod->toolid = 0x0104; | |
| 58 | mod->toolversion = 0x0001; | |
| 59 | mod->flags = 0; | |
| 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 | 62 | |
| 63 | return 0; | |
| 64 | } |