Mercurial > pidgin
annotate src/protocols/oscar/aim.h @ 4853:fbfdacf7c611
[gaim-migrate @ 5180]
This is better auto-getting of icons for oscar.
Ethan made me write a tobase16 fucntion and a from16 function (and he
done gave me some good advice for that, too) which convert to and
from arbitrary data and a null terminated string of hex. I use these
to get and store the md5 checksum for each icon sent to you. This way,
Gaim will request the icon when the md5sum differs. Er, so the md5sum
is stored in blist.xml.
Previously, Gaim would only request the icon if you did not have any
buddy icon for the other person. Now it will request it if the local
md5sum differs from the server md5sum.
To sum it up again, if their icon changes, gaim will request the new one.
I tried using the base64 functions, but they look like they want to
work with null terminated strings, rather than arbitrary data.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 22 Mar 2003 07:29:34 +0000 |
parents | edfe778868e2 |
children | 773135edda4a |
rev | line source |
---|---|
2086 | 1 /* |
2 * Main libfaim header. Must be included in client for prototypes/macros. | |
3 * | |
4 * "come on, i turned a chick lesbian; i think this is the hackish equivalent" | |
4194 | 5 * -- Josh Myer |
2086 | 6 * |
7 */ | |
8 | |
9 #ifndef __AIM_H__ | |
10 #define __AIM_H__ | |
11 | |
12 #define FAIM_VERSION_MAJOR 0 | |
13 #define FAIM_VERSION_MINOR 99 | |
14 #define FAIM_VERSION_MINORMINOR 1 | |
15 | |
16 #include <faimconfig.h> | |
17 #include <aim_cbtypes.h> | |
18 | |
19 #include <stdio.h> | |
20 #include <string.h> | |
21 #include <fcntl.h> | |
22 #include <sys/types.h> | |
23 #include <stdlib.h> | |
24 #include <stdarg.h> | |
25 #include <errno.h> | |
26 #include <time.h> | |
27 | |
3630 | 28 #ifndef _WIN32 |
2086 | 29 #include <sys/time.h> |
30 #include <unistd.h> | |
4617 | 31 #include <netdb.h> |
2086 | 32 #include <netinet/in.h> |
33 #include <sys/socket.h> | |
3630 | 34 #else |
35 #include <winsock.h> | |
2086 | 36 #endif |
37 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
38 /* XXX adjust these based on autoconf-detected platform */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
39 typedef unsigned char fu8_t; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
40 typedef unsigned short fu16_t; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
41 typedef unsigned long fu32_t; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
42 typedef fu32_t aim_snacid_t; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
43 typedef fu16_t flap_seqnum_t; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
44 |
2086 | 45 #if defined(mach) && defined(__APPLE__) |
46 #define gethostbyname(x) gethostbyname2(x, AF_INET) | |
47 #endif | |
48 | |
49 #if defined(_WIN32) || defined(STRICT_ANSI) | |
50 #define faim_shortfunc | |
51 #else | |
52 #define faim_shortfunc inline | |
53 #endif | |
54 | |
55 #if defined(_WIN32) && !defined(WIN32_STATIC) | |
56 /* | |
57 * For a win32 DLL, we define WIN32_INDLL if this file | |
58 * is included while compiling the DLL. If its not | |
59 * defined (its included in a client app), the symbols | |
60 * will be imported instead of exported. | |
61 */ | |
62 #ifdef WIN32_INDLL | |
63 #define faim_export __declspec(dllexport) | |
64 #else | |
65 #define faim_export __declspec(dllimport) | |
66 #endif /* WIN32_INDLL */ | |
67 #define faim_internal | |
68 #else | |
69 /* | |
70 * Nothing normally needed for unix... | |
71 */ | |
72 #define faim_export | |
73 #define faim_internal | |
74 #endif | |
75 | |
76 /* | |
77 * Current Maximum Length for Screen Names (not including NULL) | |
78 * | |
79 * Currently only names up to 16 characters can be registered | |
80 * however it is aparently legal for them to be larger. | |
81 */ | |
82 #define MAXSNLEN 32 | |
83 | |
84 /* | |
85 * Current Maximum Length for Instant Messages | |
86 * | |
87 * This was found basically by experiment, but not wholly | |
88 * accurate experiment. It should not be regarded | |
89 * as completely correct. But its a decent approximation. | |
90 * | |
91 * Note that although we can send this much, its impossible | |
92 * for WinAIM clients (up through the latest (4.0.1957)) to | |
93 * send any more than 1kb. Amaze all your windows friends | |
94 * with utterly oversized instant messages! | |
95 * | |
96 * XXX: the real limit is the total SNAC size at 8192. Fix this. | |
97 * | |
98 */ | |
99 #define MAXMSGLEN 7987 | |
100 | |
101 /* | |
102 * Maximum size of a Buddy Icon. | |
103 */ | |
104 #define MAXICONLEN 7168 | |
105 #define AIM_ICONIDENT "AVT1picture.id" | |
106 | |
107 /* | |
108 * Current Maximum Length for Chat Room Messages | |
109 * | |
110 * This is actually defined by the protocol to be | |
111 * dynamic, but I have yet to see due cause to | |
112 * define it dynamically here. Maybe later. | |
113 * | |
114 */ | |
115 #define MAXCHATMSGLEN 512 | |
116 | |
117 #define AIM_MD5_STRING "AOL Instant Messenger (SM)" | |
118 | |
119 /* | |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
120 * Client info. Filled in by the client and passed in to |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
121 * aim_send_login(). The information ends up getting passed to OSCAR |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
122 * through the initial login command. |
2086 | 123 * |
124 */ | |
125 struct client_info_s { | |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
126 const char *clientstring; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
127 fu16_t clientid; |
4070 | 128 fu16_t major; |
129 fu16_t minor; | |
130 fu16_t point; | |
131 fu16_t build; | |
132 fu32_t distrib; | |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
133 const char *country; /* two-letter abbrev */ |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
134 const char *lang; /* two-letter abbrev */ |
2086 | 135 }; |
136 | |
4070 | 137 /* Needs to be checked */ |
3458 | 138 #define CLIENTINFO_AIM_3_5_1670 { \ |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
139 "AOL Instant Messenger (SM), version 3.5.1670/WIN32", \ |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
140 0x0004, \ |
4070 | 141 0x0003, 0x0005, \ |
142 0x0000, 0x0686, \ | |
143 0x0000002a, \ | |
144 "us", "en", \ | |
145 } | |
146 | |
147 /* Needs to be checked */ | |
148 /* Latest winaim without ssi */ | |
149 #define CLIENTINFO_AIM_4_1_2010 { \ | |
150 "AOL Instant Messenger (SM), version 4.1.2010/WIN32", \ | |
151 0x0004, \ | |
152 0x0004, 0x0001, \ | |
153 0x0000, 0x07da, \ | |
154 0x0000004b, \ | |
155 "us", "en", \ | |
156 } | |
157 | |
158 /* Needs to be checked */ | |
159 #define CLIENTINFO_AIM_4_3_2188 { \ | |
160 "AOL Instant Messenger (SM), version 4.3.2188/WIN32", \ | |
161 0x0109, \ | |
162 0x0400, 0x0003, \ | |
163 0x0000, 0x088c, \ | |
164 0x00000086, \ | |
165 "us", "en", \ | |
2086 | 166 } |
167 | |
4070 | 168 /* Needs to be checked */ |
169 #define CLIENTINFO_AIM_4_8_2540 { \ | |
170 "AOL Instant Messenger (SM), version 4.8.2540/WIN32", \ | |
171 0x0109, \ | |
172 0x0004, 0x0008, \ | |
173 0x0000, 0x09ec, \ | |
174 0x000000af, \ | |
175 "us", "en", \ | |
2086 | 176 } |
177 | |
4070 | 178 /* Needs to be checked */ |
3595 | 179 #define CLIENTINFO_AIM_5_0_2938 { \ |
4070 | 180 "AOL Instant Messenger, version 5.0.2938/WIN32", \ |
181 0x0109, \ | |
182 0x0005, 0x0000, \ | |
183 0x0000, 0x0b7a, \ | |
184 0x00000000, \ | |
185 "us", "en", \ | |
3595 | 186 } |
187 | |
4070 | 188 #define CLIENTINFO_AIM_5_1_3036 { \ |
189 "AOL Instant Messenger, version 5.1.3036/WIN32", \ | |
190 0x0109, \ | |
191 0x0005, 0x0001, \ | |
192 0x0000, 0x0bdc, \ | |
193 0x000000d2, \ | |
194 "us", "en", \ | |
195 } | |
196 | |
197 /* Needs to be checked */ | |
3458 | 198 #define CLIENTINFO_ICQ_4_65_3281 { \ |
199 "ICQ Inc. - Product of ICQ (TM) 2000b.4.65.1.3281.85", \ | |
200 0x010a, \ | |
4070 | 201 0x0004, 0x0041, \ |
202 0x0001, 0x0cd1, \ | |
203 0x00000055, \ | |
204 "us", "en", \ | |
3458 | 205 } |
206 | |
4070 | 207 /* Needs to be checked */ |
3458 | 208 #define CLIENTINFO_ICQ_5_34_3728 { \ |
209 "ICQ Inc. - Product of ICQ (TM).2002a.5.34.1.3728.85", \ | |
210 0x010a, \ | |
4070 | 211 0x0005, 0x0022, \ |
212 0x0001, 0x0e8f, \ | |
213 0x00000055, \ | |
214 "us", "en", \ | |
3458 | 215 } |
216 | |
4071 | 217 #define CLIENTINFO_ICQ_5_45_3777 { \ |
4070 | 218 "ICQ Inc. - Product of ICQ (TM).2003a.5.45.1.3777.85", \ |
219 0x010a, \ | |
220 0x0005, 0x002d, \ | |
221 0x0001, 0x0ec1, \ | |
222 0x00000055, \ | |
223 "us", "en", \ | |
224 } | |
225 | |
226 #define CLIENTINFO_ICQBasic_14_3_1068 { \ | |
227 "ICQBasic", \ | |
228 0x010a, \ | |
229 0x0014, 0x0003, \ | |
230 0x0000, 0x042c, \ | |
231 0x0000043d, \ | |
232 "us", "en", \ | |
233 } | |
234 | |
4317 | 235 #define CLIENTINFO_Netscape_7_0_1 { \ |
236 "Netscape 2000 an approved user of AOL Instant Messenger (SM)", \ | |
237 0x1d0d, \ | |
238 0x0007, 0x0000, \ | |
239 0x0001, 0x0000, \ | |
240 0x00000058, \ | |
241 "us", "en", \ | |
242 } | |
243 | |
4071 | 244 #define CLIENTINFO_AIM_KNOWNGOOD CLIENTINFO_AIM_5_1_3036 |
245 #define CLIENTINFO_ICQ_KNOWNGOOD CLIENTINFO_ICQ_5_45_3777 | |
2086 | 246 |
247 #ifndef TRUE | |
248 #define TRUE 1 | |
249 #define FALSE 0 | |
250 #endif | |
251 | |
252 /* | |
253 * These could be arbitrary, but its easier to use the actual AIM values | |
254 */ | |
4617 | 255 #define AIM_CONN_TYPE_BOS 0x0002 |
256 #define AIM_CONN_TYPE_ADS 0x0005 | |
257 #define AIM_CONN_TYPE_AUTH 0x0007 | |
258 #define AIM_CONN_TYPE_CHATNAV 0x000d | |
259 #define AIM_CONN_TYPE_CHAT 0x000e | |
260 #define AIM_CONN_TYPE_SEARCH 0x000f | |
4804 | 261 #define AIM_CONN_TYPE_ICON 0x0010 |
4617 | 262 #define AIM_CONN_TYPE_EMAIL 0x0018 |
2086 | 263 |
4617 | 264 /* they start getting arbitrary for rendezvous stuff =) */ |
265 #define AIM_CONN_TYPE_RENDEZVOUS 0xfffe /* these do not speak FLAP! */ | |
266 #define AIM_CONN_TYPE_LISTENER 0xffff /* socket waiting for accept() */ | |
2086 | 267 |
268 /* | |
269 * Subtypes, we need these for OFT stuff. | |
270 */ | |
271 #define AIM_CONN_SUBTYPE_OFT_DIRECTIM 0x0001 | |
272 #define AIM_CONN_SUBTYPE_OFT_GETFILE 0x0002 | |
273 #define AIM_CONN_SUBTYPE_OFT_SENDFILE 0x0003 | |
274 #define AIM_CONN_SUBTYPE_OFT_BUDDYICON 0x0004 | |
275 #define AIM_CONN_SUBTYPE_OFT_VOICE 0x0005 | |
276 | |
277 /* | |
278 * Status values returned from aim_conn_new(). ORed together. | |
279 */ | |
280 #define AIM_CONN_STATUS_READY 0x0001 | |
281 #define AIM_CONN_STATUS_INTERNALERR 0x0002 | |
282 #define AIM_CONN_STATUS_RESOLVERR 0x0040 | |
283 #define AIM_CONN_STATUS_CONNERR 0x0080 | |
284 #define AIM_CONN_STATUS_INPROGRESS 0x0100 | |
285 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
286 #define AIM_FRAMETYPE_FLAP 0x0000 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
287 #define AIM_FRAMETYPE_OFT 0x0001 |
2086 | 288 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
289 typedef struct aim_conn_s { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
290 int fd; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
291 fu16_t type; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
292 fu16_t subtype; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
293 flap_seqnum_t seqnum; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
294 fu32_t status; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
295 void *priv; /* misc data the client may want to store */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
296 void *internal; /* internal conn-specific libfaim data */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
297 time_t lastactivity; /* time of last transmit */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
298 int forcedlatency; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
299 void *handlerlist; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
300 void *sessv; /* pointer to parent session */ |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
301 void *inside; /* only accessible from inside libfaim */ |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
302 struct aim_conn_s *next; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
303 } aim_conn_t; |
2086 | 304 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
305 /* |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
306 * Byte Stream type. Sort of. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
307 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
308 * Use of this type serves a couple purposes: |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
309 * - Buffer/buflen pairs are passed all around everywhere. This turns |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
310 * that into one value, as well as abstracting it slightly. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
311 * - Through the abstraction, it is possible to enable bounds checking |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
312 * for robustness at the cost of performance. But a clean failure on |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
313 * weird packets is much better than a segfault. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
314 * - I like having variables named "bs". |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
315 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
316 * Don't touch the insides of this struct. Or I'll have to kill you. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
317 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
318 */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
319 typedef struct aim_bstream_s { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
320 fu8_t *data; |
3033 | 321 fu32_t len; |
322 fu32_t offset; | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
323 } aim_bstream_t; |
2086 | 324 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
325 typedef struct aim_frame_s { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
326 fu8_t hdrtype; /* defines which piece of the union to use */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
327 union { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
328 struct { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
329 fu8_t type; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
330 flap_seqnum_t seqnum; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
331 } flap; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
332 struct { |
4617 | 333 fu8_t magic[4]; /* ODC2 or OFT2 */ |
3952 | 334 fu16_t hdrlen; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
335 fu16_t type; |
3952 | 336 } rend; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
337 } hdr; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
338 aim_bstream_t data; /* payload stream */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
339 fu8_t handled; /* 0 = new, !0 = been handled */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
340 fu8_t nofree; /* 0 = free data on purge, 1 = only unlink */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
341 aim_conn_t *conn; /* the connection it came in on... */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
342 struct aim_frame_s *next; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
343 } aim_frame_t; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
344 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
345 typedef struct aim_msgcookie_s { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
346 unsigned char cookie[8]; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
347 int type; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
348 void *data; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
349 time_t addtime; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
350 struct aim_msgcookie_s *next; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
351 } aim_msgcookie_t; |
2086 | 352 |
353 /* | |
354 * AIM Session: The main client-data interface. | |
355 * | |
356 */ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
357 typedef struct aim_session_s { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
358 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
359 /* ---- Client Accessible ------------------------ */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
360 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
361 /* Our screen name. */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
362 char sn[MAXSNLEN+1]; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
363 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
364 /* |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
365 * Pointer to anything the client wants to |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
366 * explicitly associate with this session. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
367 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
368 * This is for use in the callbacks mainly. In any |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
369 * callback, you can access this with sess->aux_data. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
370 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
371 */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
372 void *aux_data; |
2086 | 373 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
374 /* ---- Internal Use Only ------------------------ */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
375 |
2991 | 376 /* Server-stored information (ssi) */ |
377 struct { | |
378 int received_data; | |
4230 | 379 fu16_t numitems; |
380 struct aim_ssi_item *official; | |
381 struct aim_ssi_item *local; | |
382 struct aim_ssi_tmp *pending; | |
2991 | 383 time_t timestamp; |
384 int waiting_for_ack; | |
385 } ssi; | |
386 | |
4102 | 387 struct aim_authresp_info *authinfo; |
3694 | 388 struct aim_emailinfo *emailinfo; |
389 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
390 /* Connection information */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
391 aim_conn_t *connlist; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
392 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
393 /* |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
394 * Transmit/receive queues. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
395 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
396 * These are only used when you don't use your own lowlevel |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
397 * I/O. I don't suggest that you use libfaim's internal I/O. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
398 * Its really bad and the API/event model is quirky at best. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
399 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
400 */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
401 aim_frame_t *queue_outgoing; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
402 aim_frame_t *queue_incoming; |
2086 | 403 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
404 /* |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
405 * Tx Enqueuing function. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
406 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
407 * This is how you override the transmit direction of libfaim's |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
408 * internal I/O. This function will be called whenever it needs |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
409 * to send something. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
410 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
411 */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
412 int (*tx_enqueue)(struct aim_session_s *, aim_frame_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
413 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
414 /* |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
415 * Outstanding snac handling |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
416 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
417 * XXX: Should these be per-connection? -mid |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
418 */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
419 void *snac_hash[FAIM_SNAC_HASH_SIZE]; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
420 aim_snacid_t snacid_next; |
2086 | 421 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
422 struct { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
423 char server[128]; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
424 char username[128]; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
425 char password[128]; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
426 } socksproxy; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
427 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
428 fu32_t flags; /* AIM_SESS_FLAGS_ */ |
2086 | 429 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
430 int debug; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
431 void (*debugcb)(struct aim_session_s *sess, int level, const char *format, va_list va); /* same as faim_debugging_callback_t */ |
2086 | 432 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
433 aim_msgcookie_t *msgcookies; |
4624 | 434 struct aim_icq_info *icq_info; |
4826 | 435 struct aim_oft_info *oft_info; |
2086 | 436 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
437 void *modlistv; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
438 } aim_session_t; |
2086 | 439 |
440 /* Values for sess->flags */ | |
2751
b715593f0d21
[gaim-migrate @ 2764]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2742
diff
changeset
|
441 #define AIM_SESS_FLAGS_SNACLOGIN 0x00000001 |
b715593f0d21
[gaim-migrate @ 2764]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2742
diff
changeset
|
442 #define AIM_SESS_FLAGS_XORLOGIN 0x00000002 |
b715593f0d21
[gaim-migrate @ 2764]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2742
diff
changeset
|
443 #define AIM_SESS_FLAGS_NONBLOCKCONNECT 0x00000004 |
b715593f0d21
[gaim-migrate @ 2764]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2742
diff
changeset
|
444 #define AIM_SESS_FLAGS_DONTTIMEOUTONICBM 0x00000008 |
2086 | 445 |
2507
1069b0940237
[gaim-migrate @ 2520]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2421
diff
changeset
|
446 /* Valid for calling aim_icq_setstatus() and for aim_userinfo_t->icqinfo.status */ |
4342 | 447 #define AIM_ICQ_STATE_NORMAL 0x00000000 |
448 #define AIM_ICQ_STATE_AWAY 0x00000001 | |
449 #define AIM_ICQ_STATE_DND 0x00000002 | |
450 #define AIM_ICQ_STATE_OUT 0x00000004 | |
451 #define AIM_ICQ_STATE_BUSY 0x00000010 | |
452 #define AIM_ICQ_STATE_CHAT 0x00000020 | |
453 #define AIM_ICQ_STATE_INVISIBLE 0x00000100 | |
454 #define AIM_ICQ_STATE_WEBAWARE 0x00010000 | |
455 #define AIM_ICQ_STATE_HIDEIP 0x00020000 | |
456 #define AIM_ICQ_STATE_BIRTHDAY 0x00080000 | |
457 #define AIM_ICQ_STATE_DIRECTDISABLED 0x00100000 | |
458 #define AIM_ICQ_STATE_ICQHOMEPAGE 0x00200000 | |
459 #define AIM_ICQ_STATE_DIRECTREQUIREAUTH 0x10000000 | |
460 #define AIM_ICQ_STATE_DIRECTCONTACTLIST 0x20000000 | |
2507
1069b0940237
[gaim-migrate @ 2520]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2421
diff
changeset
|
461 |
2086 | 462 /* |
463 * AIM User Info, Standard Form. | |
464 */ | |
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
465 typedef struct { |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
466 char sn[MAXSNLEN+1]; |
3459 | 467 fu16_t warnlevel; /* evil percent * 10 (999 = 99.9%) */ |
468 fu16_t idletime; /* in seconds */ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
469 fu16_t flags; |
3459 | 470 fu32_t createtime; /* time_t */ |
471 fu32_t membersince; /* time_t */ | |
472 fu32_t onlinesince; /* time_t */ | |
473 fu32_t sessionlen; /* in seconds */ | |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
474 fu32_t capabilities; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
475 struct { |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
476 fu32_t status; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
477 fu32_t ipaddr; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
478 fu8_t crap[0x25]; /* until we figure it out... */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
479 } icqinfo; |
2993 | 480 fu32_t present; |
4853 | 481 fu16_t iconcsumlen; |
482 fu8_t iconcsum[30]; | |
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
483 } aim_userinfo_t; |
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
484 |
2993 | 485 #define AIM_USERINFO_PRESENT_FLAGS 0x00000001 |
486 #define AIM_USERINFO_PRESENT_MEMBERSINCE 0x00000002 | |
487 #define AIM_USERINFO_PRESENT_ONLINESINCE 0x00000004 | |
488 #define AIM_USERINFO_PRESENT_IDLE 0x00000008 | |
489 #define AIM_USERINFO_PRESENT_ICQEXTSTATUS 0x00000010 | |
490 #define AIM_USERINFO_PRESENT_ICQIPADDR 0x00000020 | |
491 #define AIM_USERINFO_PRESENT_ICQDATA 0x00000040 | |
492 #define AIM_USERINFO_PRESENT_CAPABILITIES 0x00000080 | |
493 #define AIM_USERINFO_PRESENT_SESSIONLEN 0x00000100 | |
3459 | 494 #define AIM_USERINFO_PRESENT_CREATETIME 0x00000200 |
2993 | 495 |
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
496 faim_export const char *aim_userinfo_sn(aim_userinfo_t *ui); |
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
497 faim_export fu16_t aim_userinfo_flags(aim_userinfo_t *ui); |
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
498 faim_export fu16_t aim_userinfo_idle(aim_userinfo_t *ui); |
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
499 faim_export float aim_userinfo_warnlevel(aim_userinfo_t *ui); |
3459 | 500 faim_export time_t aim_userinfo_createtime(aim_userinfo_t *ui); |
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
501 faim_export time_t aim_userinfo_membersince(aim_userinfo_t *ui); |
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
502 faim_export time_t aim_userinfo_onlinesince(aim_userinfo_t *ui); |
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
503 faim_export fu32_t aim_userinfo_sessionlen(aim_userinfo_t *ui); |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
504 faim_export int aim_userinfo_hascap(aim_userinfo_t *ui, fu32_t cap); |
2086 | 505 |
506 #define AIM_FLAG_UNCONFIRMED 0x0001 /* "damned transients" */ | |
507 #define AIM_FLAG_ADMINISTRATOR 0x0002 | |
508 #define AIM_FLAG_AOL 0x0004 | |
509 #define AIM_FLAG_OSCAR_PAY 0x0008 | |
510 #define AIM_FLAG_FREE 0x0010 | |
511 #define AIM_FLAG_AWAY 0x0020 | |
2734
9fc65bb80596
[gaim-migrate @ 2747]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2717
diff
changeset
|
512 #define AIM_FLAG_ICQ 0x0040 |
3079 | 513 #define AIM_FLAG_WIRELESS 0x0080 |
2315
7ec21662ffc2
[gaim-migrate @ 2325]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2270
diff
changeset
|
514 #define AIM_FLAG_UNKNOWN100 0x0100 |
7ec21662ffc2
[gaim-migrate @ 2325]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2270
diff
changeset
|
515 #define AIM_FLAG_UNKNOWN200 0x0200 |
7ec21662ffc2
[gaim-migrate @ 2325]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2270
diff
changeset
|
516 #define AIM_FLAG_ACTIVEBUDDY 0x0400 |
7ec21662ffc2
[gaim-migrate @ 2325]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2270
diff
changeset
|
517 #define AIM_FLAG_UNKNOWN800 0x0800 |
2734
9fc65bb80596
[gaim-migrate @ 2747]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2717
diff
changeset
|
518 #define AIM_FLAG_ABINTERNAL 0x1000 |
2086 | 519 |
520 #define AIM_FLAG_ALLUSERS 0x001f | |
521 | |
522 | |
523 #if defined(FAIM_INTERNAL) || defined(FAIM_NEED_TLV) | |
524 /* | |
525 * TLV handling | |
526 */ | |
527 | |
528 /* Generic TLV structure. */ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
529 typedef struct aim_tlv_s { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
530 fu16_t type; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
531 fu16_t length; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
532 fu8_t *value; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
533 } aim_tlv_t; |
2086 | 534 |
535 /* List of above. */ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
536 typedef struct aim_tlvlist_s { |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
537 aim_tlv_t *tlv; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
538 struct aim_tlvlist_s *next; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
539 } aim_tlvlist_t; |
2086 | 540 |
541 /* TLV-handling functions */ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
542 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
543 #if 0 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
544 /* Very, very raw TLV handling. */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
545 faim_internal int aim_puttlv_8(fu8_t *buf, const fu16_t t, const fu8_t v); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
546 faim_internal int aim_puttlv_16(fu8_t *buf, const fu16_t t, const fu16_t v); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
547 faim_internal int aim_puttlv_32(fu8_t *buf, const fu16_t t, const fu32_t v); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
548 faim_internal int aim_puttlv_raw(fu8_t *buf, const fu16_t t, const fu16_t l, const fu8_t *v); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
549 #endif |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
550 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
551 /* TLV list handling. */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
552 faim_internal aim_tlvlist_t *aim_readtlvchain(aim_bstream_t *bs); |
3952 | 553 faim_internal aim_tlvlist_t *aim_readtlvchain_num(aim_bstream_t *bs, fu16_t num); |
4230 | 554 faim_internal aim_tlvlist_t *aim_readtlvchain_len(aim_bstream_t *bs, fu16_t len); |
555 faim_internal aim_tlvlist_t *aim_tlvlist_copy(aim_tlvlist_t *orig); | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
556 faim_internal void aim_freetlvchain(aim_tlvlist_t **list); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
557 faim_internal aim_tlv_t *aim_gettlv(aim_tlvlist_t *, fu16_t t, const int n); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
558 faim_internal char *aim_gettlv_str(aim_tlvlist_t *, const fu16_t t, const int n); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
559 faim_internal fu8_t aim_gettlv8(aim_tlvlist_t *list, const fu16_t type, const int num); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
560 faim_internal fu16_t aim_gettlv16(aim_tlvlist_t *list, const fu16_t t, const int n); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
561 faim_internal fu32_t aim_gettlv32(aim_tlvlist_t *list, const fu16_t t, const int n); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
562 faim_internal int aim_writetlvchain(aim_bstream_t *bs, aim_tlvlist_t **list); |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
563 faim_internal int aim_addtlvtochain8(aim_tlvlist_t **list, const fu16_t t, const fu8_t v); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
564 faim_internal int aim_addtlvtochain16(aim_tlvlist_t **list, const fu16_t t, const fu16_t v); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
565 faim_internal int aim_addtlvtochain32(aim_tlvlist_t **list, const fu16_t type, const fu32_t v); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
566 faim_internal int aim_addtlvtochain_raw(aim_tlvlist_t **list, const fu16_t t, const fu16_t l, const fu8_t *v); |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
567 faim_internal int aim_addtlvtochain_caps(aim_tlvlist_t **list, const fu16_t t, const fu32_t caps); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
568 faim_internal int aim_addtlvtochain_noval(aim_tlvlist_t **list, const fu16_t type); |
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
569 faim_internal int aim_addtlvtochain_userinfo(aim_tlvlist_t **list, fu16_t type, aim_userinfo_t *ui); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
570 faim_internal int aim_addtlvtochain_frozentlvlist(aim_tlvlist_t **list, fu16_t type, aim_tlvlist_t **tl); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
571 faim_internal int aim_counttlvchain(aim_tlvlist_t **list); |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
572 faim_internal int aim_sizetlvchain(aim_tlvlist_t **list); |
2086 | 573 #endif /* FAIM_INTERNAL */ |
574 | |
575 /* | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
576 * Get command from connections |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
577 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
578 * aim_get_commmand() is the libfaim lowlevel I/O in the receive direction. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
579 * XXX Make this easily overridable. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
580 * |
2086 | 581 */ |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
582 faim_export int aim_get_command(aim_session_t *, aim_conn_t *); |
2086 | 583 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
584 /* |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
585 * Dispatch commands that are in the rx queue. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
586 */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
587 faim_export void aim_rxdispatch(aim_session_t *); |
2086 | 588 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
589 faim_export int aim_debugconn_sendconnect(aim_session_t *sess, aim_conn_t *conn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
590 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
591 faim_export int aim_logoff(aim_session_t *); |
2086 | 592 |
593 #if !defined(FAIM_INTERNAL) || defined(FAIM_INTERNAL_INSANE) | |
594 /* the library should never call aim_conn_kill */ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
595 faim_export void aim_conn_kill(aim_session_t *sess, aim_conn_t **deadconn); |
2086 | 596 #endif |
597 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
598 typedef int (*aim_rxcallback_t)(aim_session_t *, aim_frame_t *, ...); |
2086 | 599 |
2704 | 600 struct aim_clientrelease { |
601 char *name; | |
602 fu32_t build; | |
603 char *url; | |
604 char *info; | |
605 }; | |
606 | |
607 struct aim_authresp_info { | |
608 char *sn; | |
609 fu16_t errorcode; | |
610 char *errorurl; | |
611 fu16_t regstatus; | |
612 char *email; | |
613 char *bosip; | |
4293 | 614 fu16_t cookielen; |
2704 | 615 fu8_t *cookie; |
3912 | 616 char *chpassurl; |
2704 | 617 struct aim_clientrelease latestrelease; |
618 struct aim_clientrelease latestbeta; | |
619 }; | |
620 | |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
621 /* Callback data for redirect. */ |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
622 struct aim_redirect_data { |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
623 fu16_t group; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
624 const char *ip; |
4293 | 625 fu16_t cookielen; |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
626 const fu8_t *cookie; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
627 struct { /* group == AIM_CONN_TYPE_CHAT */ |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
628 fu16_t exchange; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
629 const char *room; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
630 fu16_t instance; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
631 } chat; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
632 }; |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
633 |
2672 | 634 faim_export int aim_clientready(aim_session_t *sess, aim_conn_t *conn); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
635 faim_export int aim_sendflapver(aim_session_t *sess, aim_conn_t *conn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
636 faim_export int aim_request_login(aim_session_t *sess, aim_conn_t *conn, const char *sn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
637 faim_export int aim_send_login(aim_session_t *, aim_conn_t *, const char *, const char *, struct client_info_s *, const char *key); |
2086 | 638 faim_export int aim_encode_password_md5(const char *password, const char *key, unsigned char *digest); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
639 faim_export void aim_purge_rxqueue(aim_session_t *); |
4333 | 640 faim_export void aim_cleansnacs(aim_session_t *, int maxage); |
2086 | 641 |
642 #define AIM_TX_QUEUED 0 /* default */ | |
643 #define AIM_TX_IMMEDIATE 1 | |
644 #define AIM_TX_USER 2 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
645 faim_export int aim_tx_setenqueue(aim_session_t *sess, int what, int (*func)(aim_session_t *, aim_frame_t *)); |
2086 | 646 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
647 faim_export int aim_tx_flushqueue(aim_session_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
648 faim_export void aim_tx_purgequeue(aim_session_t *); |
2086 | 649 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
650 faim_export int aim_conn_setlatency(aim_conn_t *conn, int newval); |
2086 | 651 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
652 faim_export int aim_conn_addhandler(aim_session_t *, aim_conn_t *conn, u_short family, u_short type, aim_rxcallback_t newhandler, u_short flags); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
653 faim_export int aim_clearhandlers(aim_conn_t *conn); |
2086 | 654 |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
655 faim_export aim_conn_t *aim_conn_findbygroup(aim_session_t *sess, fu16_t group); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
656 faim_export aim_session_t *aim_conn_getsess(aim_conn_t *conn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
657 faim_export void aim_conn_close(aim_conn_t *deadconn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
658 faim_export aim_conn_t *aim_newconn(aim_session_t *, int type, const char *dest); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
659 faim_export int aim_conngetmaxfd(aim_session_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
660 faim_export aim_conn_t *aim_select(aim_session_t *, struct timeval *, int *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
661 faim_export int aim_conn_isready(aim_conn_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
662 faim_export int aim_conn_setstatus(aim_conn_t *, int); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
663 faim_export int aim_conn_completeconnect(aim_session_t *sess, aim_conn_t *conn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
664 faim_export int aim_conn_isconnecting(aim_conn_t *conn); |
2086 | 665 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
666 typedef void (*faim_debugging_callback_t)(aim_session_t *sess, int level, const char *format, va_list va); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
667 faim_export int aim_setdebuggingcb(aim_session_t *sess, faim_debugging_callback_t); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
668 faim_export void aim_session_init(aim_session_t *, unsigned long flags, int debuglevel); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
669 faim_export void aim_session_kill(aim_session_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
670 faim_export void aim_setupproxy(aim_session_t *sess, const char *server, const char *username, const char *password); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
671 faim_export aim_conn_t *aim_getconn_type(aim_session_t *, int type); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
672 faim_export aim_conn_t *aim_getconn_type_all(aim_session_t *, int type); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
673 faim_export aim_conn_t *aim_getconn_fd(aim_session_t *, int fd); |
2086 | 674 |
3912 | 675 /* misc.c */ |
2086 | 676 |
677 #define AIM_VISIBILITYCHANGE_PERMITADD 0x05 | |
678 #define AIM_VISIBILITYCHANGE_PERMITREMOVE 0x06 | |
679 #define AIM_VISIBILITYCHANGE_DENYADD 0x07 | |
680 #define AIM_VISIBILITYCHANGE_DENYREMOVE 0x08 | |
681 | |
682 #define AIM_PRIVFLAGS_ALLOWIDLE 0x01 | |
683 #define AIM_PRIVFLAGS_ALLOWMEMBERSINCE 0x02 | |
684 | |
685 #define AIM_WARN_ANON 0x01 | |
686 | |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
687 faim_export int aim_sendpauseack(aim_session_t *sess, aim_conn_t *conn); |
2703
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
688 faim_export int aim_nop(aim_session_t *, aim_conn_t *); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
689 faim_export int aim_flap_nop(aim_session_t *sess, aim_conn_t *conn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
690 faim_export int aim_bos_setidle(aim_session_t *, aim_conn_t *, fu32_t); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
691 faim_export int aim_bos_changevisibility(aim_session_t *, aim_conn_t *, int, const char *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
692 faim_export int aim_bos_setbuddylist(aim_session_t *, aim_conn_t *, const char *); |
4151 | 693 faim_export int aim_bos_setprofile(aim_session_t *sess, aim_conn_t *conn, const char *profile_encoding, const char *profile, const int profile_len, const char *awaymsg_encoding, const char *awaymsg, const int awaymsg_len, fu32_t caps); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
694 faim_export int aim_bos_setgroupperm(aim_session_t *, aim_conn_t *, fu32_t mask); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
695 faim_export int aim_bos_setprivacyflags(aim_session_t *, aim_conn_t *, fu32_t); |
2703
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
696 faim_export int aim_reqpersonalinfo(aim_session_t *, aim_conn_t *); |
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
697 faim_export int aim_reqservice(aim_session_t *, aim_conn_t *, fu16_t); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
698 faim_export int aim_bos_reqrights(aim_session_t *, aim_conn_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
699 faim_export int aim_bos_reqbuddyrights(aim_session_t *, aim_conn_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
700 faim_export int aim_bos_reqlocaterights(aim_session_t *, aim_conn_t *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
701 faim_export int aim_setdirectoryinfo(aim_session_t *sess, aim_conn_t *conn, const char *first, const char *middle, const char *last, const char *maiden, const char *nickname, const char *street, const char *city, const char *state, const char *zip, int country, fu16_t privacy); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
702 faim_export int aim_setuserinterests(aim_session_t *sess, aim_conn_t *conn, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, fu16_t privacy); |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
703 faim_export int aim_setextstatus(aim_session_t *sess, aim_conn_t *conn, fu32_t status); |
2086 | 704 |
705 #define AIM_CLIENTTYPE_UNKNOWN 0x0000 | |
706 #define AIM_CLIENTTYPE_MC 0x0001 | |
707 #define AIM_CLIENTTYPE_WINAIM 0x0002 | |
708 #define AIM_CLIENTTYPE_WINAIM41 0x0003 | |
709 #define AIM_CLIENTTYPE_AOL_TOC 0x0004 | |
4617 | 710 faim_export unsigned short aim_im_fingerprint(unsigned char *msghdr, int len); |
2086 | 711 |
712 #define AIM_RATE_CODE_CHANGE 0x0001 | |
713 #define AIM_RATE_CODE_WARNING 0x0002 | |
714 #define AIM_RATE_CODE_LIMIT 0x0003 | |
715 #define AIM_RATE_CODE_CLEARLIMIT 0x0004 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
716 faim_export int aim_ads_requestads(aim_session_t *sess, aim_conn_t *conn); |
2086 | 717 |
4617 | 718 |
719 | |
3912 | 720 /* im.c */ |
4617 | 721 #define AIM_IMPARAM_FLAG_CHANMSGS_ALLOWED 0x00000001 |
722 #define AIM_IMPARAM_FLAG_MISSEDCALLS_ENABLED 0x00000002 | |
723 | |
724 /* This is what the server will give you if you don't set them yourself. */ | |
725 #define AIM_IMPARAM_DEFAULTS { \ | |
726 0, \ | |
727 AIM_IMPARAM_FLAG_CHANMSGS_ALLOWED | AIM_IMPARAM_FLAG_MISSEDCALLS_ENABLED, \ | |
728 512, /* !! Note how small this is. */ \ | |
729 (99.9)*10, (99.9)*10, \ | |
730 1000 /* !! And how large this is. */ \ | |
731 } | |
2086 | 732 |
4617 | 733 /* This is what most AIM versions use. */ |
734 #define AIM_IMPARAM_REASONABLE { \ | |
735 0, \ | |
736 AIM_IMPARAM_FLAG_CHANMSGS_ALLOWED | AIM_IMPARAM_FLAG_MISSEDCALLS_ENABLED, \ | |
737 8000, \ | |
738 (99.9)*10, (99.9)*10, \ | |
739 0 \ | |
740 } | |
741 | |
742 struct aim_icbmparameters { | |
743 fu16_t maxchan; | |
744 fu32_t flags; /* AIM_IMPARAM_FLAG_ */ | |
745 fu16_t maxmsglen; /* message size that you will accept */ | |
746 fu16_t maxsenderwarn; /* this and below are *10 (999=99.9%) */ | |
747 fu16_t maxrecverwarn; | |
748 fu32_t minmsginterval; /* in milliseconds? */ | |
2086 | 749 }; |
750 | |
751 struct aim_chat_roominfo { | |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
752 unsigned short exchange; |
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
753 char *name; |
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
754 unsigned short instance; |
2086 | 755 }; |
756 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
757 #define AIM_IMFLAGS_AWAY 0x0001 /* mark as an autoreply */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
758 #define AIM_IMFLAGS_ACK 0x0002 /* request a receipt notice */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
759 #define AIM_IMFLAGS_UNICODE 0x0004 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
760 #define AIM_IMFLAGS_ISO_8859_1 0x0008 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
761 #define AIM_IMFLAGS_BUDDYREQ 0x0010 /* buddy icon requested */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
762 #define AIM_IMFLAGS_HASICON 0x0020 /* already has icon */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
763 #define AIM_IMFLAGS_SUBENC_MACINTOSH 0x0040 /* damn that Steve Jobs! */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
764 #define AIM_IMFLAGS_CUSTOMFEATURES 0x0080 /* features field present */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
765 #define AIM_IMFLAGS_EXTDATA 0x0100 |
4662 | 766 #define AIM_IMFLAGS_X 0x0200 |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
767 #define AIM_IMFLAGS_MULTIPART 0x0400 /* ->mpmsg section valid */ |
2703
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
768 #define AIM_IMFLAGS_OFFLINE 0x0800 /* send to offline user */ |
3595 | 769 #define AIM_IMFLAGS_TYPINGNOT 0x1000 /* typing notification */ |
2086 | 770 |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
771 /* |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
772 * Multipart message structures. |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
773 */ |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
774 typedef struct aim_mpmsg_section_s { |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
775 fu16_t charset; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
776 fu16_t charsubset; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
777 fu8_t *data; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
778 fu16_t datalen; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
779 struct aim_mpmsg_section_s *next; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
780 } aim_mpmsg_section_t; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
781 |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
782 typedef struct aim_mpmsg_s { |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
783 int numparts; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
784 aim_mpmsg_section_t *parts; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
785 } aim_mpmsg_t; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
786 |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
787 faim_export int aim_mpmsg_init(aim_session_t *sess, aim_mpmsg_t *mpm); |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
788 faim_export int aim_mpmsg_addraw(aim_session_t *sess, aim_mpmsg_t *mpm, fu16_t charset, fu16_t charsubset, const fu8_t *data, fu16_t datalen); |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
789 faim_export int aim_mpmsg_addascii(aim_session_t *sess, aim_mpmsg_t *mpm, const char *ascii); |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
790 faim_export int aim_mpmsg_addunicode(aim_session_t *sess, aim_mpmsg_t *mpm, const fu16_t *unicode, fu16_t unicodelen); |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
791 faim_export void aim_mpmsg_free(aim_session_t *sess, aim_mpmsg_t *mpm); |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
792 |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
793 /* |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
794 * Arguments to aim_send_im_ext(). |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
795 * |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
796 * This is really complicated. But immensely versatile. |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
797 * |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
798 */ |
2086 | 799 struct aim_sendimext_args { |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
800 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
801 /* These are _required_ */ |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
802 const char *destsn; |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
803 fu32_t flags; /* often 0 */ |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
804 |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
805 /* Only required if not using multipart messages */ |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
806 const char *msg; |
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
807 int msglen; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
808 |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
809 /* Required if ->msg is not provided */ |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
810 aim_mpmsg_t *mpmsg; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
811 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
812 /* Only used if AIM_IMFLAGS_HASICON is set */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
813 fu32_t iconlen; |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
814 time_t iconstamp; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
815 fu32_t iconsum; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
816 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
817 /* Only used if AIM_IMFLAGS_CUSTOMFEATURES is set */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
818 fu8_t *features; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
819 fu8_t featureslen; |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
820 |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
821 /* Only used if AIM_IMFLAGS_CUSTOMCHARSET is set and mpmsg not used */ |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
822 fu16_t charset; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
823 fu16_t charsubset; |
2086 | 824 }; |
825 | |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
826 /* |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
827 * Arguments to aim_send_rtfmsg(). |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
828 */ |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
829 struct aim_sendrtfmsg_args { |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
830 const char *destsn; |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
831 fu32_t fgcolor; |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
832 fu32_t bgcolor; |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
833 const char *rtfmsg; /* must be in RTF */ |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
834 }; |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
835 |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
836 /* |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
837 * This information is provided in the Incoming ICBM callback for |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
838 * Channel 1 ICBM's. |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
839 * |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
840 * Note that although CUSTOMFEATURES and CUSTOMCHARSET say they |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
841 * are optional, both are always set by the current libfaim code. |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
842 * That may or may not change in the future. It is mainly for |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
843 * consistency with aim_sendimext_args. |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
844 * |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
845 * Multipart messages require some explanation. If you want to use them, |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
846 * I suggest you read all the comments in im.c. |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
847 * |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
848 */ |
2086 | 849 struct aim_incomingim_ch1_args { |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
850 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
851 /* Always provided */ |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
852 aim_mpmsg_t mpmsg; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
853 fu32_t icbmflags; /* some flags apply only to ->msg, not all mpmsg */ |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
854 |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
855 /* Only provided if message has a human-readable section */ |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
856 char *msg; |
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
857 int msglen; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
858 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
859 /* Only provided if AIM_IMFLAGS_HASICON is set */ |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
860 time_t iconstamp; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
861 fu32_t iconlen; |
2626
93f9bbd62630
[gaim-migrate @ 2639]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2507
diff
changeset
|
862 fu16_t iconsum; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
863 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
864 /* Only provided if AIM_IMFLAGS_CUSTOMFEATURES is set */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
865 fu8_t *features; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
866 fu8_t featureslen; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
867 |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
868 /* Only provided if AIM_IMFLAGS_EXTDATA is set */ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
869 fu8_t extdatalen; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
870 fu8_t *extdata; |
2270
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
871 |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
872 /* Only used if AIM_IMFLAGS_CUSTOMCHARSET is set */ |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
873 fu16_t charset; |
d82efea341ef
[gaim-migrate @ 2280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2246
diff
changeset
|
874 fu16_t charsubset; |
2086 | 875 }; |
876 | |
2869 | 877 /* Valid values for channel 2 args->status */ |
878 #define AIM_RENDEZVOUS_PROPOSE 0x0000 | |
879 #define AIM_RENDEZVOUS_CANCEL 0x0001 | |
880 #define AIM_RENDEZVOUS_ACCEPT 0x0002 | |
881 | |
2086 | 882 struct aim_incomingim_ch2_args { |
4617 | 883 fu16_t status; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
884 fu8_t cookie[8]; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
885 fu16_t reqclass; |
2869 | 886 const char *clientip; |
887 const char *clientip2; | |
888 const char *verifiedip; | |
889 fu16_t port; | |
4617 | 890 fu16_t errorcode; |
2869 | 891 const char *msg; /* invite message or file description */ |
892 const char *encoding; | |
893 const char *language; | |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
894 union { |
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
895 struct { |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
896 fu32_t checksum; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
897 fu32_t length; |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
898 time_t timestamp; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
899 fu8_t *icon; |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
900 } icon; |
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
901 struct { |
2869 | 902 struct aim_chat_roominfo roominfo; |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
903 } chat; |
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
904 struct { |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
905 fu32_t fgcolor; |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
906 fu32_t bgcolor; |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
907 const char *rtfmsg; |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
908 } rtfmsg; |
3630 | 909 struct { |
3771 | 910 fu16_t subtype; |
3630 | 911 fu16_t totfiles; |
912 fu32_t totsize; | |
913 char *filename; | |
914 } sendfile; | |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
915 } info; |
2869 | 916 void *destructor; /* used internally only */ |
2086 | 917 }; |
918 | |
3141 | 919 /* Valid values for channel 4 args->type */ |
920 #define AIM_ICQMSG_AUTHREQUEST 0x0006 | |
921 #define AIM_ICQMSG_AUTHDENIED 0x0007 | |
922 #define AIM_ICQMSG_AUTHGRANTED 0x0008 | |
923 | |
924 struct aim_incomingim_ch4_args { | |
925 fu32_t uin; /* Of the sender of the ICBM */ | |
4173 | 926 fu8_t type; |
927 fu8_t flags; | |
3141 | 928 char *msg; /* Reason for auth request, deny, or accept */ |
4076 | 929 int msglen; |
3141 | 930 }; |
931 | |
4617 | 932 /* SNAC sending functions */ |
933 /* 0x0002 */ faim_export int aim_im_setparams(aim_session_t *sess, struct aim_icbmparameters *params); | |
934 /* 0x0004 */ faim_export int aim_im_reqparams(aim_session_t *sess); | |
935 /* 0x0006 */ faim_export int aim_im_sendch1_ext(aim_session_t *sess, struct aim_sendimext_args *args); | |
936 /* 0x0006 */ faim_export int aim_im_sendch1(aim_session_t *, const char *destsn, unsigned short flags, const char *msg); | |
937 /* 0x0006 */ faim_export int aim_im_sendch2_icon(aim_session_t *sess, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu16_t iconsum); | |
938 /* 0x0006 */ faim_export int aim_im_sendch2_rtfmsg(aim_session_t *sess, struct aim_sendrtfmsg_args *args); | |
939 /* 0x0006 */ faim_export int aim_im_sendch2_odcrequest(aim_session_t *sess, fu8_t *cookie, const char *sn, const fu8_t *ip, fu16_t port); | |
940 /* 0x0006 */ faim_export int aim_im_sendch2_sendfile_ask(aim_session_t *sess, fu8_t *cookie, const char *sn, const fu8_t *ip, fu16_t port, const char *filename, fu16_t numfiles, fu32_t totsize); | |
941 /* 0x0006 */ faim_export int aim_im_sendch2_sendfile_accept(aim_session_t *sess, const fu8_t *cookie, const char *sn, fu16_t rendid); | |
942 /* 0x0006 */ faim_export int aim_im_sendch2_sendfile_cancel(aim_session_t *sess, const fu8_t *cookie, const char *sn, fu16_t rendid); | |
943 /* 0x0006 */ faim_export int aim_im_sendch2_geticqaway(aim_session_t *sess, const char *sn, int type); | |
944 /* 0x0006 */ faim_export int aim_im_sendch4(aim_session_t *sess, char *sn, fu16_t type, fu8_t *message); | |
945 /* 0x0008 */ faim_export int aim_im_warn(aim_session_t *sess, aim_conn_t *conn, const char *destsn, fu32_t flags); | |
946 /* 0x000b */ faim_export int aim_im_denytransfer(aim_session_t *sess, const char *sender, const char *cookie, unsigned short code); | |
947 /* 0x0014 */ faim_export int aim_im_sendmtn(aim_session_t *sess, fu16_t type1, char *sn, fu16_t type2); | |
948 | |
949 | |
950 | |
951 /* ft.c */ | |
952 #define AIM_OFT_SUBTYPE_SEND_FILE 0x0001 | |
953 #define AIM_OFT_SUBTYPE_SEND_DIR 0x0002 | |
954 #define AIM_OFT_SUBTYPE_GET_FILE 0x0011 | |
955 #define AIM_OPT_SUBTYPE_GET_LIST 0x0012 | |
956 | |
957 #define AIM_TRANSFER_DENY_NOTSUPPORTED 0x0000 | |
958 #define AIM_TRANSFER_DENY_DECLINE 0x0001 | |
959 #define AIM_TRANSFER_DENY_NOTACCEPTING 0x0002 | |
2086 | 960 |
4617 | 961 struct aim_fileheader_t { |
962 #if 0 | |
963 char magic[4]; /* 0 */ | |
964 fu16_t hdrlen; /* 4 */ | |
965 fu16_t hdrtype; /* 6 */ | |
966 #endif | |
967 char bcookie[8]; /* 8 */ | |
968 fu16_t encrypt; /* 16 */ | |
969 fu16_t compress; /* 18 */ | |
970 fu16_t totfiles; /* 20 */ | |
971 fu16_t filesleft; /* 22 */ | |
972 fu16_t totparts; /* 24 */ | |
973 fu16_t partsleft; /* 26 */ | |
974 fu32_t totsize; /* 28 */ | |
975 fu32_t size; /* 32 */ | |
976 fu32_t modtime; /* 36 */ | |
977 fu32_t checksum; /* 40 */ | |
978 fu32_t rfrcsum; /* 44 */ | |
979 fu32_t rfsize; /* 48 */ | |
980 fu32_t cretime; /* 52 */ | |
981 fu32_t rfcsum; /* 56 */ | |
982 fu32_t nrecvd; /* 60 */ | |
983 fu32_t recvcsum; /* 64 */ | |
984 fu8_t idstring[32]; /* 68 */ | |
985 fu8_t flags; /* 100 */ | |
986 fu8_t lnameoffset; /* 101 */ | |
987 fu8_t lsizeoffset; /* 102 */ | |
988 char dummy[69]; /* 103 */ | |
989 char macfileinfo[16]; /* 172 */ | |
990 fu16_t nencode; /* 188 */ | |
991 fu16_t nlanguage; /* 190 */ | |
992 char name[64]; /* 192 */ | |
993 /* 256 */ | |
994 }; | |
3595 | 995 |
4826 | 996 struct aim_oft_info { |
4617 | 997 char cookie[8]; |
998 char ip[30]; | |
4832 | 999 struct aim_fileheader_t fh; |
4826 | 1000 struct aim_oft_info *next; |
4617 | 1001 }; |
1002 | |
4763 | 1003 faim_export fu32_t aim_oft_checksum_chunk(const fu8_t *buffer, int bufferlen, fu32_t prevcheck); |
4650 | 1004 faim_export fu32_t aim_oft_checksum_file(char *filename); |
4617 | 1005 faim_export int aim_handlerendconnect(aim_session_t *sess, aim_conn_t *cur); |
1006 faim_export int aim_odc_send_typing(aim_session_t *sess, aim_conn_t *conn, int typing); | |
1007 faim_export int aim_odc_send_im(aim_session_t *sess, aim_conn_t *conn, const char *msg, int len, int encoding); | |
1008 faim_export const char *aim_odc_getsn(aim_conn_t *conn); | |
1009 faim_export aim_conn_t *aim_odc_getconn(aim_session_t *sess, const char *sn); | |
1010 faim_export aim_conn_t *aim_odc_initiate(aim_session_t *sess, const char *sn); | |
1011 faim_export aim_conn_t *aim_odc_connect(aim_session_t *sess, const char *sn, const char *addr, const fu8_t *cookie); | |
4832 | 1012 faim_export struct aim_oft_info *aim_oft_createnewheader(fu8_t *cookie, char *ip, fu32_t size, fu32_t modtime, char *filename); |
4617 | 1013 faim_export aim_conn_t *aim_sendfile_listen(aim_session_t *sess, const fu8_t *cookie, const fu8_t *ip, fu16_t port); |
4646 | 1014 faim_export int aim_oft_sendheader(aim_session_t *sess, aim_conn_t *conn, fu16_t type, const fu8_t *cookie, const char *filename, fu16_t filesdone, fu16_t numfiles, fu32_t size, fu32_t totsize, fu32_t modtime, fu32_t checksum, fu8_t flags, fu32_t bytesreceived, fu32_t recvcsum); |
4617 | 1015 |
1016 | |
2086 | 1017 |
3912 | 1018 /* info.c */ |
4650 | 1019 #define AIM_CAPS_BUDDYICON 0x00000001 |
1020 #define AIM_CAPS_VOICE 0x00000002 | |
1021 #define AIM_CAPS_IMIMAGE 0x00000004 | |
1022 #define AIM_CAPS_CHAT 0x00000008 | |
1023 #define AIM_CAPS_GETFILE 0x00000010 | |
1024 #define AIM_CAPS_SENDFILE 0x00000020 | |
1025 #define AIM_CAPS_GAMES 0x00000040 | |
1026 #define AIM_CAPS_SAVESTOCKS 0x00000080 | |
1027 #define AIM_CAPS_SENDBUDDYLIST 0x00000100 | |
1028 #define AIM_CAPS_GAMES2 0x00000200 | |
1029 #define AIM_CAPS_ICQ 0x00000400 | |
1030 #define AIM_CAPS_APINFO 0x00000800 | |
2866
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
1031 #define AIM_CAPS_ICQRTF 0x00001000 |
6d62d4520460
[gaim-migrate @ 2879]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2821
diff
changeset
|
1032 #define AIM_CAPS_EMPTY 0x00002000 |
4650 | 1033 #define AIM_CAPS_ICQSERVERRELAY 0x00004000 |
1034 #define AIM_CAPS_ICQUNKNOWN 0x00008000 | |
1035 #define AIM_CAPS_TRILLIANCRYPT 0x00010000 | |
1036 #define AIM_CAPS_ICQUTF8 0x00020000 | |
4811 | 1037 #define AIM_CAPS_INTEROPERATE 0x00040000 |
1038 #define AIM_CAPS_LAST 0x00080000 | |
2086 | 1039 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1040 faim_export int aim_0002_000b(aim_session_t *sess, aim_conn_t *conn, const char *sn); |
2086 | 1041 |
1042 #define AIM_SENDMEMBLOCK_FLAG_ISREQUEST 0 | |
1043 #define AIM_SENDMEMBLOCK_FLAG_ISHASH 1 | |
1044 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1045 faim_export int aim_sendmemblock(aim_session_t *sess, aim_conn_t *conn, unsigned long offset, unsigned long len, const unsigned char *buf, unsigned char flag); |
2086 | 1046 |
1047 #define AIM_GETINFO_GENERALINFO 0x00001 | |
1048 #define AIM_GETINFO_AWAYMESSAGE 0x00003 | |
2920 | 1049 #define AIM_GETINFO_CAPABILITIES 0x0004 |
2086 | 1050 |
1051 struct aim_invite_priv { | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1052 char *sn; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1053 char *roomname; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1054 fu16_t exchange; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1055 fu16_t instance; |
2086 | 1056 }; |
1057 | |
1058 #define AIM_COOKIETYPE_UNKNOWN 0x00 | |
1059 #define AIM_COOKIETYPE_ICBM 0x01 | |
1060 #define AIM_COOKIETYPE_ADS 0x02 | |
1061 #define AIM_COOKIETYPE_BOS 0x03 | |
1062 #define AIM_COOKIETYPE_IM 0x04 | |
1063 #define AIM_COOKIETYPE_CHAT 0x05 | |
1064 #define AIM_COOKIETYPE_CHATNAV 0x06 | |
1065 #define AIM_COOKIETYPE_INVITE 0x07 | |
1066 /* we'll move OFT up a bit to give breathing room. not like it really | |
1067 * matters. */ | |
1068 #define AIM_COOKIETYPE_OFTIM 0x10 | |
1069 #define AIM_COOKIETYPE_OFTGET 0x11 | |
1070 #define AIM_COOKIETYPE_OFTSEND 0x12 | |
1071 #define AIM_COOKIETYPE_OFTVOICE 0x13 | |
1072 #define AIM_COOKIETYPE_OFTIMAGE 0x14 | |
1073 #define AIM_COOKIETYPE_OFTICON 0x15 | |
1074 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1075 faim_export int aim_getinfo(aim_session_t *, aim_conn_t *, const char *, unsigned short); |
2421
95b4ec08abec
[gaim-migrate @ 2434]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2315
diff
changeset
|
1076 faim_export int aim_sendbuddyoncoming(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *info); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1077 faim_export int aim_sendbuddyoffgoing(aim_session_t *sess, aim_conn_t *conn, const char *sn); |
2086 | 1078 |
2167
edf8c5a70e5b
[gaim-migrate @ 2177]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2122
diff
changeset
|
1079 |
2086 | 1080 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1081 /* auth.c */ |
4293 | 1082 faim_export int aim_sendcookie(aim_session_t *, aim_conn_t *, const fu16_t length, const fu8_t *); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1083 |
2703
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
1084 faim_export int aim_admin_changepasswd(aim_session_t *, aim_conn_t *, const char *newpw, const char *curpw); |
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
1085 faim_export int aim_admin_reqconfirm(aim_session_t *sess, aim_conn_t *conn); |
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
1086 faim_export int aim_admin_getinfo(aim_session_t *sess, aim_conn_t *conn, fu16_t info); |
441b84ab7f4e
[gaim-migrate @ 2716]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2675
diff
changeset
|
1087 faim_export int aim_admin_setemail(aim_session_t *sess, aim_conn_t *conn, const char *newemail); |
2979 | 1088 faim_export int aim_admin_setnick(aim_session_t *sess, aim_conn_t *conn, const char *newnick); |
2086 | 1089 |
4617 | 1090 |
1091 | |
3952 | 1092 /* buddylist.c */ |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1093 faim_export int aim_add_buddy(aim_session_t *, aim_conn_t *, const char *); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1094 faim_export int aim_remove_buddy(aim_session_t *, aim_conn_t *, const char *); |
2086 | 1095 |
4617 | 1096 |
1097 | |
3952 | 1098 /* search.c */ |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1099 faim_export int aim_usersearch_address(aim_session_t *, aim_conn_t *, const char *); |
2086 | 1100 |
4617 | 1101 |
1102 | |
3952 | 1103 /* newsearch.c */ |
1104 struct aim_usersearch { | |
1105 char *first; | |
1106 char *last; | |
1107 char *middle; | |
1108 char *maiden; | |
1109 char *email; | |
1110 char *country; | |
1111 char *state; | |
1112 char *city; | |
1113 char *sn; | |
1114 char *interest; | |
1115 char *nick; | |
1116 char *zip; | |
1117 char *region; | |
1118 char *address; | |
1119 struct aim_usersearch *next; | |
1120 }; | |
1121 | |
1122 faim_export int aim_usersearch_email(aim_session_t *, const char *, const char *); | |
1123 faim_export int aim_usersearch_name(aim_session_t *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *); | |
1124 faim_export int aim_usersearch_interest(aim_session_t *, const char *, const char *); | |
1125 | |
1126 | |
4804 | 1127 |
1128 /* icon.c */ | |
1129 faim_export int aim_icon_requesticon(aim_session_t *sess, const char *sn, const fu8_t *iconstr, fu16_t iconstrlen); | |
1130 | |
1131 | |
1132 | |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1133 /* These apply to exchanges as well. */ |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1134 #define AIM_CHATROOM_FLAG_EVILABLE 0x0001 |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1135 #define AIM_CHATROOM_FLAG_NAV_ONLY 0x0002 |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1136 #define AIM_CHATROOM_FLAG_INSTANCING_ALLOWED 0x0004 |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1137 #define AIM_CHATROOM_FLAG_OCCUPANT_PEEK_ALLOWED 0x0008 |
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1138 |
2086 | 1139 struct aim_chat_exchangeinfo { |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1140 fu16_t number; |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1141 fu16_t flags; |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1142 char *name; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1143 char *charset1; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1144 char *lang1; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1145 char *charset2; |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1146 char *lang2; |
2086 | 1147 }; |
1148 | |
1149 #define AIM_CHATFLAGS_NOREFLECT 0x0001 | |
1150 #define AIM_CHATFLAGS_AWAY 0x0002 | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1151 faim_export int aim_chat_send_im(aim_session_t *sess, aim_conn_t *conn, fu16_t flags, const char *msg, int msglen); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1152 faim_export int aim_chat_join(aim_session_t *sess, aim_conn_t *conn, fu16_t exchange, const char *roomname, fu16_t instance); |
2821
9467e4ee81be
[gaim-migrate @ 2834]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2764
diff
changeset
|
1153 faim_export int aim_chat_attachname(aim_conn_t *conn, fu16_t exchange, const char *roomname, fu16_t instance); |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1154 faim_export char *aim_chat_getname(aim_conn_t *conn); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1155 faim_export aim_conn_t *aim_chat_getconn(aim_session_t *, const char *name); |
2086 | 1156 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1157 faim_export int aim_chatnav_reqrights(aim_session_t *sess, aim_conn_t *conn); |
2086 | 1158 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1159 faim_export int aim_chat_invite(aim_session_t *sess, aim_conn_t *conn, const char *sn, const char *msg, fu16_t exchange, const char *roomname, fu16_t instance); |
2086 | 1160 |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1161 faim_export int aim_chatnav_createroom(aim_session_t *sess, aim_conn_t *conn, const char *name, fu16_t exchange); |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1162 faim_export int aim_chat_leaveroom(aim_session_t *sess, const char *name); |
2086 | 1163 |
2672 | 1164 |
4230 | 1165 |
1166 /* ssi.c */ | |
2672 | 1167 #define AIM_SSI_TYPE_BUDDY 0x0000 |
1168 #define AIM_SSI_TYPE_GROUP 0x0001 | |
3017 | 1169 #define AIM_SSI_TYPE_PERMIT 0x0002 |
1170 #define AIM_SSI_TYPE_DENY 0x0003 | |
2672 | 1171 #define AIM_SSI_TYPE_PDINFO 0x0004 |
1172 #define AIM_SSI_TYPE_PRESENCEPREFS 0x0005 | |
1173 | |
4230 | 1174 #define AIM_SSI_ACK_SUCCESS 0x0000 |
1175 #define AIM_SSI_ACK_ITEMNOTFOUND 0x0002 | |
1176 #define AIM_SSI_ACK_IDNUMINUSE 0x000a | |
1177 #define AIM_SSI_ACK_ATMAX 0x000c | |
1178 #define AIM_SSI_ACK_INVALIDNAME 0x000d | |
1179 #define AIM_SSI_ACK_AUTHREQUIRED 0x000e | |
1180 | |
2672 | 1181 struct aim_ssi_item { |
1182 char *name; | |
1183 fu16_t gid; | |
1184 fu16_t bid; | |
1185 fu16_t type; | |
4230 | 1186 struct aim_tlvlist_s *data; |
2672 | 1187 struct aim_ssi_item *next; |
1188 }; | |
1189 | |
4230 | 1190 struct aim_ssi_tmp { |
1191 fu16_t action; | |
1192 fu16_t ack; | |
1193 char *name; | |
1194 struct aim_ssi_item *item; | |
1195 struct aim_ssi_tmp *next; | |
1196 }; | |
1197 | |
3109 | 1198 /* These build the actual SNACs and queue them to be sent */ |
4230 | 1199 /* 0x0002 */ faim_export int aim_ssi_reqrights(aim_session_t *sess, aim_conn_t *conn); |
1200 /* 0x0005 */ faim_export int aim_ssi_reqdata(aim_session_t *sess, aim_conn_t *conn, time_t localstamp, fu16_t localrev); | |
4642 | 1201 /* 0x0007 */ faim_export int aim_ssi_enable(aim_session_t *sess); |
4230 | 1202 /* 0x0008 */ faim_export int aim_ssi_addmoddel(aim_session_t *sess, aim_conn_t *conn); |
1203 /* 0x0011 */ faim_export int aim_ssi_modbegin(aim_session_t *sess, aim_conn_t *conn); | |
1204 /* 0x0012 */ faim_export int aim_ssi_modend(aim_session_t *sess, aim_conn_t *conn); | |
1205 /* 0x0014 */ faim_export int aim_ssi_sendauth(aim_session_t *sess, aim_conn_t *conn, char *sn, char *msg); | |
1206 /* 0x0018 */ faim_export int aim_ssi_sendauthrequest(aim_session_t *sess, aim_conn_t *conn, char *sn, char *msg); | |
1207 /* 0x001a */ faim_export int aim_ssi_sendauthreply(aim_session_t *sess, aim_conn_t *conn, char *sn, fu8_t reply, char *msg); | |
2672 | 1208 |
4230 | 1209 /* Client functions for retrieving SSI data */ |
3210 | 1210 faim_export struct aim_ssi_item *aim_ssi_itemlist_find(struct aim_ssi_item *list, fu16_t gid, fu16_t bid); |
3466 | 1211 faim_export struct aim_ssi_item *aim_ssi_itemlist_finditem(struct aim_ssi_item *list, const char *gn, const char *sn, fu16_t type); |
4230 | 1212 faim_export struct aim_ssi_item *aim_ssi_itemlist_exists(struct aim_ssi_item *list, const char *sn); |
1213 faim_export char *aim_ssi_itemlist_findparentname(struct aim_ssi_item *list, const char *sn); | |
3210 | 1214 faim_export int aim_ssi_getpermdeny(struct aim_ssi_item *list); |
1215 faim_export fu32_t aim_ssi_getpresence(struct aim_ssi_item *list); | |
4238 | 1216 faim_export char *aim_ssi_getalias(struct aim_ssi_item *list, const char *gn, const char *sn); |
4243 | 1217 faim_export int aim_ssi_waitingforauth(struct aim_ssi_item *list, const char *gn, const char *sn); |
4230 | 1218 |
1219 /* Client functions for changing SSI data */ | |
1220 faim_export int aim_ssi_addbuddy(aim_session_t *sess, aim_conn_t *conn, const char *name, const char *group, const char *alias, const char *comment, const char *smsnum, int needauth); | |
1221 faim_export int aim_ssi_addpermit(aim_session_t *sess, aim_conn_t *conn, const char *name); | |
1222 faim_export int aim_ssi_adddeny(aim_session_t *sess, aim_conn_t *conn, const char *name); | |
1223 faim_export int aim_ssi_delbuddy(aim_session_t *sess, aim_conn_t *conn, const char *name, const char *group); | |
1224 faim_export int aim_ssi_delpermit(aim_session_t *sess, aim_conn_t *conn, const char *name); | |
1225 faim_export int aim_ssi_deldeny(aim_session_t *sess, aim_conn_t *conn, const char *name); | |
3867 | 1226 faim_export int aim_ssi_movebuddy(aim_session_t *sess, aim_conn_t *conn, const char *oldgn, const char *newgn, const char *sn); |
4269 | 1227 faim_export int aim_ssi_aliasbuddy(aim_session_t *sess, aim_conn_t *conn, const char *gn, const char *sn, const char *alias); |
3867 | 1228 faim_export int aim_ssi_rename_group(aim_session_t *sess, aim_conn_t *conn, const char *oldgn, const char *newgn); |
4230 | 1229 faim_export int aim_ssi_cleanlist(aim_session_t *sess, aim_conn_t *conn); |
2998 | 1230 faim_export int aim_ssi_deletelist(aim_session_t *sess, aim_conn_t *conn); |
3210 | 1231 faim_export int aim_ssi_setpermdeny(aim_session_t *sess, aim_conn_t *conn, fu8_t permdeny, fu32_t vismask); |
3109 | 1232 faim_export int aim_ssi_setpresence(aim_session_t *sess, aim_conn_t *conn, fu32_t presence); |
2991 | 1233 |
4230 | 1234 |
1235 | |
1236 /* icq.c */ | |
4624 | 1237 #define AIM_ICQ_INFO_SIMPLE 0x001 |
1238 #define AIM_ICQ_INFO_SUMMARY 0x002 | |
1239 #define AIM_ICQ_INFO_EMAIL 0x004 | |
1240 #define AIM_ICQ_INFO_PERSONAL 0x008 | |
1241 #define AIM_ICQ_INFO_ADDITIONAL 0x010 | |
1242 #define AIM_ICQ_INFO_WORK 0x020 | |
1243 #define AIM_ICQ_INFO_INTERESTS 0x040 | |
1244 #define AIM_ICQ_INFO_ORGS 0x080 | |
1245 #define AIM_ICQ_INFO_UNKNOWN 0x100 | |
1246 #define AIM_ICQ_INFO_HAVEALL 0x1ff | |
1247 | |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1248 struct aim_icq_offlinemsg { |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1249 fu32_t sender; |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1250 fu16_t year; |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1251 fu8_t month, day, hour, minute; |
4173 | 1252 fu8_t type; |
1253 fu8_t flags; | |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1254 char *msg; |
4076 | 1255 int msglen; |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1256 }; |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1257 |
4151 | 1258 struct aim_icq_info { |
4624 | 1259 fu16_t reqid; |
1260 | |
1261 /* simple */ | |
2742
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1262 fu32_t uin; |
4624 | 1263 |
1264 /* general and "home" information (0x00c8) */ | |
2742
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1265 char *nick; |
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1266 char *first; |
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1267 char *last; |
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1268 char *email; |
4151 | 1269 char *homecity; |
1270 char *homestate; | |
4624 | 1271 char *homephone; |
1272 char *homefax; | |
4151 | 1273 char *homeaddr; |
4624 | 1274 char *mobile; |
4151 | 1275 char *homezip; |
1276 fu16_t homecountry; | |
4624 | 1277 /* fu8_t timezone; |
1278 fu8_t hideemail; */ | |
1279 | |
1280 /* personal (0x00dc) */ | |
1281 fu8_t age; | |
1282 fu8_t unknown; | |
1283 fu8_t gender; | |
1284 char *personalwebpage; | |
1285 fu16_t birthyear; | |
1286 fu8_t birthmonth; | |
1287 fu8_t birthday; | |
1288 fu8_t language1; | |
1289 fu8_t language2; | |
1290 fu8_t language3; | |
1291 | |
1292 /* work (0x00d2) */ | |
4151 | 1293 char *workcity; |
1294 char *workstate; | |
4624 | 1295 char *workphone; |
1296 char *workfax; | |
4151 | 1297 char *workaddr; |
1298 char *workzip; | |
1299 fu16_t workcountry; | |
1300 char *workcompany; | |
1301 char *workdivision; | |
1302 char *workposition; | |
1303 char *workwebpage; | |
4624 | 1304 |
1305 /* additional personal information (0x00e6) */ | |
1306 char *info; | |
1307 | |
1308 /* email (0x00eb) */ | |
1309 fu16_t numaddresses; | |
4625 | 1310 char **email2; |
4624 | 1311 |
1312 /* we keep track of these in a linked list because we're 1337 */ | |
1313 struct aim_icq_info *next; | |
2742
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1314 }; |
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1315 |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1316 faim_export int aim_icq_reqofflinemsgs(aim_session_t *sess); |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1317 faim_export int aim_icq_ackofflinemsgs(aim_session_t *sess); |
4664 | 1318 faim_export int aim_icq_hideip(aim_session_t *sess); |
4617 | 1319 faim_export int aim_icq_changepasswd(aim_session_t *sess, const char *passwd); |
2742
6f527cbd899d
[gaim-migrate @ 2755]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2734
diff
changeset
|
1320 faim_export int aim_icq_getsimpleinfo(aim_session_t *sess, const char *uin); |
4759 | 1321 faim_export int aim_icq_getalias(aim_session_t *sess, const char *uin); |
4151 | 1322 faim_export int aim_icq_getallinfo(aim_session_t *sess, const char *uin); |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1323 |
4617 | 1324 |
1325 | |
3694 | 1326 /* email.c */ |
1327 struct aim_emailinfo { | |
1328 fu8_t *cookie16; | |
1329 fu8_t *cookie8; | |
1330 char *url; | |
1331 fu16_t nummsgs; | |
1332 fu8_t unread; | |
1333 char *domain; | |
1334 fu16_t flag; | |
1335 struct aim_emailinfo *next; | |
1336 }; | |
1337 | |
1338 faim_export int aim_email_sendcookies(aim_session_t *sess, aim_conn_t *conn); | |
1339 faim_export int aim_email_activate(aim_session_t *sess, aim_conn_t *conn); | |
1340 | |
4617 | 1341 |
1342 | |
3912 | 1343 /* util.c */ |
2086 | 1344 /* |
1345 * These are really ugly. You'd think this was LISP. I wish it was. | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1346 * |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1347 * XXX With the advent of bstream's, these should be removed to enforce |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1348 * their use. |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1349 * |
2086 | 1350 */ |
1351 #define aimutil_put8(buf, data) ((*(buf) = (u_char)(data)&0xff),1) | |
1352 #define aimutil_get8(buf) ((*(buf))&0xff) | |
1353 #define aimutil_put16(buf, data) ( \ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1354 (*(buf) = (u_char)((data)>>8)&0xff), \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1355 (*((buf)+1) = (u_char)(data)&0xff), \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1356 2) |
2086 | 1357 #define aimutil_get16(buf) ((((*(buf))<<8)&0xff00) + ((*((buf)+1)) & 0xff)) |
1358 #define aimutil_put32(buf, data) ( \ | |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1359 (*((buf)) = (u_char)((data)>>24)&0xff), \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1360 (*((buf)+1) = (u_char)((data)>>16)&0xff), \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1361 (*((buf)+2) = (u_char)((data)>>8)&0xff), \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1362 (*((buf)+3) = (u_char)(data)&0xff), \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1363 4) |
2086 | 1364 #define aimutil_get32(buf) ((((*(buf))<<24)&0xff000000) + \ |
2246
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1365 (((*((buf)+1))<<16)&0x00ff0000) + \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1366 (((*((buf)+2))<< 8)&0x0000ff00) + \ |
933346315b9b
[gaim-migrate @ 2256]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2196
diff
changeset
|
1367 (((*((buf)+3) )&0x000000ff))) |
2086 | 1368 |
2706
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1369 /* Little-endian versions (damn ICQ) */ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1370 #define aimutil_putle8(buf, data) ( \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1371 (*(buf) = (unsigned char)(data) & 0xff), \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1372 1) |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1373 #define aimutil_getle8(buf) ( \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1374 (*(buf)) & 0xff \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1375 ) |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1376 #define aimutil_putle16(buf, data) ( \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1377 (*((buf)+0) = (unsigned char)((data) >> 0) & 0xff), \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1378 (*((buf)+1) = (unsigned char)((data) >> 8) & 0xff), \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1379 2) |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1380 #define aimutil_getle16(buf) ( \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1381 (((*((buf)+0)) << 0) & 0x00ff) + \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1382 (((*((buf)+1)) << 8) & 0xff00) \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1383 ) |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1384 #define aimutil_putle32(buf, data) ( \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1385 (*((buf)+0) = (unsigned char)((data) >> 0) & 0xff), \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1386 (*((buf)+1) = (unsigned char)((data) >> 8) & 0xff), \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1387 (*((buf)+2) = (unsigned char)((data) >> 16) & 0xff), \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1388 (*((buf)+3) = (unsigned char)((data) >> 24) & 0xff), \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1389 4) |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1390 #define aimutil_getle32(buf) ( \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1391 (((*((buf)+0)) << 0) & 0x000000ff) + \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1392 (((*((buf)+1)) << 8) & 0x0000ff00) + \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1393 (((*((buf)+2)) << 16) & 0x00ff0000) + \ |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1394 (((*((buf)+3)) << 24) & 0xff000000)) |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1395 |
e841b14b5b89
[gaim-migrate @ 2719]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2704
diff
changeset
|
1396 |
2086 | 1397 faim_export int aimutil_putstr(u_char *, const char *, int); |
4617 | 1398 faim_export fu16_t aimutil_iconsum(const fu8_t *buf, int buflen); |
1399 faim_export int aim_util_getlocalip(fu8_t *ip); | |
2086 | 1400 faim_export int aimutil_tokslen(char *toSearch, int index, char dl); |
1401 faim_export int aimutil_itemcnt(char *toSearch, char dl); | |
1402 faim_export char *aimutil_itemidx(char *toSearch, int index, char dl); | |
1403 | |
1404 faim_export int aim_snlen(const char *sn); | |
1405 faim_export int aim_sncmp(const char *sn1, const char *sn2); | |
1406 | |
1407 /* for libc's that dont have it */ | |
1408 faim_export char *aim_strsep(char **pp, const char *delim); | |
1409 | |
1410 #include <aim_internal.h> | |
1411 | |
1412 #endif /* __AIM_H__ */ | |
1413 |