Tue, 14 Jun 2005 00:24:27 +0000
[gaim-migrate @ 12864]
Small changes to the oscar PRPL. Someone in #gaim was attempting to
debug a problem he's seen with permit/deny settings not sticking,
and noticed that there were multiple copies of people in his permit
or deny list. He didn't think the copies were still being added.
In any case, now Gaim will remove duplicate copies of people in your
permit and deny list, and multiple copies of a single buddy in the
same group.
| 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 | } |