src/protocols/oscar/bart.c

Tue, 14 Jun 2005 00:24:27 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Tue, 14 Jun 2005 00:24:27 +0000
changeset 11005
06c22b605323
parent 10990
6655ae14e763
child 11024
f4e005b0922b
permissions
-rw-r--r--

[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.

6879
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
1 /*
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
2 * Family 0x0010 - Server stored buddy art
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
3 *
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
4 * Used for storing and retrieving your cute little buddy icon
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
5 * from the AIM servers.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
6 *
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
7 */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
8
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
9 #define FAIM_INTERNAL
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
10 #include <aim.h>
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
11
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
12 /**
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
13 * Subtype 0x0002 - Upload your icon.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
14 *
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
15 * @param sess The oscar session.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
16 * @param conn The icon connection for this session.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
17 * @param icon The raw data of the icon image file.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
18 * @param iconlen Length of the raw data of the icon image file.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
19 * @return Return 0 if no errors, otherwise return the error number.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
20 */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
21 faim_export int aim_bart_upload(aim_session_t *sess, const fu8_t *icon, fu16_t iconlen)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
22 {
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
23 aim_conn_t *conn;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
24 aim_frame_t *fr;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
25 aim_snacid_t snacid;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
26
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
27 if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0010)) || !icon || !iconlen)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
28 return -EINVAL;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
29
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
30 if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + 2 + 2+iconlen)))
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
31 return -ENOMEM;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
32 snacid = aim_cachesnac(sess, 0x0010, 0x0002, 0x0000, NULL, 0);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
33 aim_putsnac(&fr->data, 0x0010, 0x0002, 0x0000, snacid);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
34
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
35 /* The reference number for the icon */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
36 aimbs_put16(&fr->data, 1);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
37
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
38 /* The icon */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
39 aimbs_put16(&fr->data, iconlen);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
40 aimbs_putraw(&fr->data, icon, iconlen);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
41
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
42 aim_tx_enqueue(sess, fr);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
43
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
44 return 0;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
45 }
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
46
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
47 /**
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
48 * Subtype 0x0003 - Acknowledgement for uploading a buddy icon.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
49 *
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
50 * You get this honky after you upload a buddy icon.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
51 */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
52 static int uploadack(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
53 {
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
54 int ret = 0;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
55 aim_rxcallback_t userfunc;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
56 fu16_t something, somethingelse;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
57 fu8_t onemorething;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
58
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
59 something = aimbs_get16(bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
60 somethingelse = aimbs_get16(bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
61 onemorething = aimbs_get8(bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
62
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
63 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
64 ret = userfunc(sess, rx);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
65
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
66 return ret;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
67 }
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
68
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
69 /**
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
70 * Subtype 0x0004 - Request someone's icon.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
71 *
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
72 * @param sess The oscar session.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
73 * @param conn The icon connection for this session.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
74 * @param sn The screen name of the person who's icon you are requesting.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
75 * @param iconcsum The MD5 checksum of the icon you are requesting.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
76 * @param iconcsumlen Length of the MD5 checksum given above. Should be 10 bytes.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
77 * @return Return 0 if no errors, otherwise return the error number.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
78 */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
79 faim_export int aim_bart_request(aim_session_t *sess, const char *sn, const fu8_t *iconcsum, fu16_t iconcsumlen)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
80 {
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
81 aim_conn_t *conn;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
82 aim_frame_t *fr;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
83 aim_snacid_t snacid;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
84
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
85 if (!sess || !(conn = aim_conn_findbygroup(sess, 0x0010)) || !sn || !strlen(sn) || !iconcsum || !iconcsumlen)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
86 return -EINVAL;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
87
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
88 if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + 1+strlen(sn) + 4 + 1+iconcsumlen)))
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
89 return -ENOMEM;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
90 snacid = aim_cachesnac(sess, 0x0010, 0x0004, 0x0000, NULL, 0);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
91 aim_putsnac(&fr->data, 0x0010, 0x0004, 0x0000, snacid);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
92
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
93 /* Screen name */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
94 aimbs_put8(&fr->data, strlen(sn));
10990
6655ae14e763 [gaim-migrate @ 12828]
Mark Doliner <markdoliner@pidgin.im>
parents: 6879
diff changeset
95 aimbs_putstr(&fr->data, sn);
6879
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
96
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
97 /* Some numbers. You like numbers, right? */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
98 aimbs_put8(&fr->data, 0x01);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
99 aimbs_put16(&fr->data, 0x0001);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
100 aimbs_put8(&fr->data, 0x01);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
101
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
102 /* Icon string */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
103 aimbs_put8(&fr->data, iconcsumlen);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
104 aimbs_putraw(&fr->data, iconcsum, iconcsumlen);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
105
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
106 aim_tx_enqueue(sess, fr);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
107
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
108 return 0;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
109 }
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
110
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
111 /**
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
112 * Subtype 0x0005 - Receive a buddy icon.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
113 *
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
114 * This is sent in response to a buddy icon request.
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
115 */
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
116 static int parseicon(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
117 {
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
118 int ret = 0;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
119 aim_rxcallback_t userfunc;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
120 char *sn;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
121 fu16_t flags, iconlen;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
122 fu8_t number, iconcsumlen, *iconcsum, *icon;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
123
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
124 sn = aimbs_getstr(bs, aimbs_get8(bs));
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
125 flags = aimbs_get16(bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
126 number = aimbs_get8(bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
127 iconcsumlen = aimbs_get8(bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
128 iconcsum = aimbs_getraw(bs, iconcsumlen);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
129 iconlen = aimbs_get16(bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
130 icon = aimbs_getraw(bs, iconlen);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
131
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
132 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
133 ret = userfunc(sess, rx, sn, iconcsum, iconcsumlen, icon, iconlen);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
134
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
135 free(sn);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
136 free(iconcsum);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
137 free(icon);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
138
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
139 return ret;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
140 }
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
141
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
142 static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
143 {
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
144
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
145 if (snac->subtype == 0x0003)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
146 return uploadack(sess, mod, rx, snac, bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
147 else if (snac->subtype == 0x0005)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
148 return parseicon(sess, mod, rx, snac, bs);
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
149
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
150 return 0;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
151 }
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
152
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
153 faim_internal int bart_modfirst(aim_session_t *sess, aim_module_t *mod)
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
154 {
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
155
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
156 mod->family = 0x0010;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
157 mod->version = 0x0001;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
158 mod->toolid = 0x0010;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
159 mod->toolversion = 0x0629;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
160 mod->flags = 0;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
161 strncpy(mod->name, "bart", sizeof(mod->name));
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
162 mod->snachandler = snachandler;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
163
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
164 return 0;
cc7abcef355c [gaim-migrate @ 7425]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
165 }

mercurial