Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
| 13235 | 1 | /* |
| 15884 | 2 | * Purple's oscar protocol plugin |
| 13235 | 3 | * This file is the legal property of its developers. |
| 4 | * Please see the AUTHORS file distributed alongside this file. | |
| 5 | * | |
| 6 | * This library is free software; you can redistribute it and/or | |
| 7 | * modify it under the terms of the GNU Lesser General Public | |
| 8 | * License as published by the Free Software Foundation; either | |
| 9 | * version 2 of the License, or (at your option) any later version. | |
| 10 | * | |
| 11 | * This library is distributed in the hope that it will be useful, | |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 14 | * Lesser General Public License for more details. | |
| 15 | * | |
| 16 | * You should have received a copy of the GNU Lesser General Public | |
| 17 | * License along with this library; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
15978
diff
changeset
|
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 13235 | 19 | */ |
| 20 | ||
| 21 | /* | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
22 | * OFT and ODC Services |
| 13235 | 23 | */ |
| 24 | ||
| 25 | #ifndef _PEER_H_ | |
| 26 | #define _PEER_H_ | |
| 27 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
28 | #include "ft.h" |
|
14329
05c3cc0c1f79
[gaim-migrate @ 16949]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
29 | #include "network.h" |
|
05c3cc0c1f79
[gaim-migrate @ 16949]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
30 | #include "proxy.h" |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
31 | |
|
15354
52ba52a13827
[gaim-migrate @ 18083]
Mark Doliner <markdoliner@pidgin.im>
parents:
15322
diff
changeset
|
32 | typedef struct _ChecksumData ChecksumData; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
33 | typedef struct _OdcFrame OdcFrame; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
34 | typedef struct _OftFrame OftFrame; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
35 | typedef struct _ProxyFrame ProxyFrame; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
36 | typedef struct _PeerConnection PeerConnection; |
| 13235 | 37 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
38 | #define PEER_CONNECTION_FLAG_INITIATED_BY_ME 0x0001 |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
39 | #define PEER_CONNECTION_FLAG_APPROVED 0x0002 |
| 15173 | 40 | #define PEER_CONNECTION_FLAG_TRIED_DIRECT 0x0004 |
| 41 | #define PEER_CONNECTION_FLAG_TRIED_INCOMING 0x0008 | |
| 42 | #define PEER_CONNECTION_FLAG_TRIED_PROXY 0x0010 | |
| 43 | #define PEER_CONNECTION_FLAG_IS_INCOMING 0x0020 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
44 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
45 | #define PEER_TYPE_PROMPT 0x0101 /* "I am going to send you this file, is that ok?" */ |
|
15322
cd268e368bc1
[gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents:
15256
diff
changeset
|
46 | #define PEER_TYPE_RESUMEACCEPT 0x0106 /* We are accepting the resume */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
47 | #define PEER_TYPE_ACK 0x0202 /* "Yes, it is ok for you to send me that file" */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
48 | #define PEER_TYPE_DONE 0x0204 /* "I received that file with no problems, thanks a bunch" */ |
|
15322
cd268e368bc1
[gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents:
15256
diff
changeset
|
49 | #define PEER_TYPE_RESUME 0x0205 /* Resume transferring, sent by whoever receives */ |
|
cd268e368bc1
[gaim-migrate @ 18050]
Mark Doliner <markdoliner@pidgin.im>
parents:
15256
diff
changeset
|
50 | #define PEER_TYPE_RESUMEACK 0x0207 /* Our resume accept was ACKed */ |
| 13235 | 51 | |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
52 | #define PEER_TYPE_GETFILE_REQUESTLISTING 0x1108 /* "I have a listing.txt file, do you want it?" */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
53 | #define PEER_TYPE_GETFILE_RECEIVELISTING 0x1209 /* "Yes, please send me your listing.txt file" */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
54 | #define PEER_TYPE_GETFILE_RECEIVEDLISTING 0x120a /* received corrupt listing.txt file? I'm just guessing about this one... */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
55 | #define PEER_TYPE_GETFILE_ACKLISTING 0x120b /* "I received the listing.txt file successfully" */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
56 | #define PEER_TYPE_GETFILE_REQUESTFILE 0x120c /* "Please send me this file" */ |
| 13235 | 57 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
58 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
59 | * For peer proxying |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
60 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
61 | #define PEER_PROXY_SERVER "ars.oscar.aol.com" |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
62 | #define PEER_PROXY_PORT 5190 /* The port we should always connect to */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
63 | #define PEER_PROXY_PACKET_VERSION 0x044a |
| 13235 | 64 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
65 | /* Thanks to Keith Lea and the Joust project for documenting these */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
66 | #define PEER_PROXY_TYPE_ERROR 0x0001 |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
67 | #define PEER_PROXY_TYPE_CREATE 0x0002 |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
68 | #define PEER_PROXY_TYPE_CREATED 0x0003 |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
69 | #define PEER_PROXY_TYPE_JOIN 0x0004 |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
70 | #define PEER_PROXY_TYPE_READY 0x0005 |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
71 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
72 | struct _OdcFrame |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
73 | { |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
74 | /* guchar magic[4]; */ /* 0 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
75 | /* guint16 length; */ /* 4 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
76 | guint16 type; /* 6 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
77 | guint16 subtype; /* 8 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
78 | /* Unknown */ /* 10 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
79 | guchar cookie[8]; /* 12 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
80 | /* Unknown */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
81 | /* guint32 payloadlength; */ /* 28 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
82 | guint16 encoding; /* 32 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
83 | /* Unknown */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
84 | guint16 flags; /* 38 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
85 | /* Unknown */ |
|
25889
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
23079
diff
changeset
|
86 | guchar bn[32]; /* 44 */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
87 | /* Unknown */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
88 | ByteStream payload; /* 76 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
89 | }; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
90 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
91 | struct _OftFrame |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
92 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
93 | /* guchar magic[4]; */ /* 0 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
94 | /* guint16 length; */ /* 4 */ |
|
13253
5ad8373f2d1e
[gaim-migrate @ 15618]
Mark Doliner <markdoliner@pidgin.im>
parents:
13240
diff
changeset
|
95 | guint16 type; /* 6 */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
96 | guchar cookie[8]; /* 8 */ |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
97 | guint16 encrypt; /* 16 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
98 | guint16 compress; /* 18 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
99 | guint16 totfiles; /* 20 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
100 | guint16 filesleft; /* 22 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
101 | guint16 totparts; /* 24 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
102 | guint16 partsleft; /* 26 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
103 | guint32 totsize; /* 28 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
104 | guint32 size; /* 32 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
105 | guint32 modtime; /* 36 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
106 | guint32 checksum; /* 40 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
107 | guint32 rfrcsum; /* 44 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
108 | guint32 rfsize; /* 48 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
109 | guint32 cretime; /* 52 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
110 | guint32 rfcsum; /* 56 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
111 | guint32 nrecvd; /* 60 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
112 | guint32 recvcsum; /* 64 */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
113 | guchar idstring[32]; /* 68 */ |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
114 | guint8 flags; /* 100 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
115 | guint8 lnameoffset; /* 101 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
116 | guint8 lsizeoffset; /* 102 */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
117 | guchar dummy[69]; /* 103 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
118 | guchar macfileinfo[16]; /* 172 */ |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
119 | guint16 nencode; /* 188 */ |
|
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
120 | guint16 nlanguage; /* 190 */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
121 | guchar *name; /* 192 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
122 | size_t name_length; |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
123 | /* Payload? */ /* 256 */ |
| 13235 | 124 | }; |
| 125 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
126 | struct _ProxyFrame |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
127 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
128 | /* guint16 length; */ /* 0 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
129 | guint16 version; /* 2 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
130 | guint16 type; /* 4 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
131 | guint32 unknown; /* 6 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
132 | guint16 flags; /* 10 */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
133 | ByteStream payload; /* 12 */ |
| 13235 | 134 | }; |
| 135 | ||
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
136 | struct _PeerConnection |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
137 | { |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
138 | OscarData *od; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
139 | OscarCapability type; |
|
25889
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
23079
diff
changeset
|
140 | char *bn; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
141 | guchar magic[4]; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
142 | guchar cookie[8]; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
143 | guint16 lastrequestnumber; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
144 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
145 | gboolean ready; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
146 | int flags; /**< Bitmask of PEER_CONNECTION_FLAG_ */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
147 | time_t lastactivity; /**< Time of last transmit. */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
148 | guint destroy_timeout; |
|
13609
a6fbfad454b6
[gaim-migrate @ 15994]
Mark Doliner <markdoliner@pidgin.im>
parents:
13593
diff
changeset
|
149 | OscarDisconnectReason disconnect_reason; |
|
14464
b7bca43f75b3
[gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents:
14329
diff
changeset
|
150 | char *error_message; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
151 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
152 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
153 | * A pointer to either an OdcFrame or an OftFrame. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
154 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
155 | gpointer frame; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
156 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
157 | /** |
|
14166
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
158 | * This is only used when the peer connection is being established. |
|
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
159 | */ |
| 15884 | 160 | PurpleProxyConnectData *client_connect_data; |
| 161 | PurpleProxyConnectData *verified_connect_data; | |
|
15256
c57887cd5d08
[gaim-migrate @ 17983]
Mark Doliner <markdoliner@pidgin.im>
parents:
15173
diff
changeset
|
162 | |
|
14166
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
163 | /** |
|
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
164 | * This is only used when the peer connection is being established. |
|
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
165 | */ |
| 15884 | 166 | PurpleNetworkListenData *listen_data; |
|
14329
05c3cc0c1f79
[gaim-migrate @ 16949]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
167 | |
|
05c3cc0c1f79
[gaim-migrate @ 16949]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
168 | |
|
05c3cc0c1f79
[gaim-migrate @ 16949]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
169 | /** |
|
05c3cc0c1f79
[gaim-migrate @ 16949]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
170 | * This is only used when the peer connection is being established. |
|
05c3cc0c1f79
[gaim-migrate @ 16949]
Mark Doliner <markdoliner@pidgin.im>
parents:
14324
diff
changeset
|
171 | */ |
|
14166
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
172 | guint connect_timeout_timer; |
|
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
173 | |
|
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
174 | /** |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
175 | * This is only used while the remote user is attempting to |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
176 | * connect to us. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
177 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
178 | int listenerfd; |
|
14166
59f2d7f35ad8
[gaim-migrate @ 16735]
Mark Doliner <markdoliner@pidgin.im>
parents:
14151
diff
changeset
|
179 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
180 | int fd; |
|
15256
c57887cd5d08
[gaim-migrate @ 17983]
Mark Doliner <markdoliner@pidgin.im>
parents:
15173
diff
changeset
|
181 | guint8 header[6]; |
|
23079
b887906eed60
More s/ssize_t/gssize/
Daniel Atallah <datallah@pidgin.im>
parents:
19859
diff
changeset
|
182 | gssize header_received; |
|
15256
c57887cd5d08
[gaim-migrate @ 17983]
Mark Doliner <markdoliner@pidgin.im>
parents:
15173
diff
changeset
|
183 | guint8 proxy_header[12]; |
|
23079
b887906eed60
More s/ssize_t/gssize/
Daniel Atallah <datallah@pidgin.im>
parents:
19859
diff
changeset
|
184 | gssize proxy_header_received; |
|
15256
c57887cd5d08
[gaim-migrate @ 17983]
Mark Doliner <markdoliner@pidgin.im>
parents:
15173
diff
changeset
|
185 | ByteStream buffer_incoming; |
| 15884 | 186 | PurpleCircBuffer *buffer_outgoing; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
187 | guint watcher_incoming; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
188 | guint watcher_outgoing; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
189 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
190 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
191 | * IP address of the proxy server, if applicable. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
192 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
193 | gchar *proxyip; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
194 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
195 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
196 | * IP address of the remote user from THEIR point of view. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
197 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
198 | gchar *clientip; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
199 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
200 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
201 | * IP address of the remote user from the oscar server's |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
202 | * point of view. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
203 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
204 | gchar *verifiedip; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
205 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
206 | guint16 port; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
207 | gboolean use_proxy; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
208 | |
|
15354
52ba52a13827
[gaim-migrate @ 18083]
Mark Doliner <markdoliner@pidgin.im>
parents:
15322
diff
changeset
|
209 | /** |
|
52ba52a13827
[gaim-migrate @ 18083]
Mark Doliner <markdoliner@pidgin.im>
parents:
15322
diff
changeset
|
210 | * Checksumming |
|
52ba52a13827
[gaim-migrate @ 18083]
Mark Doliner <markdoliner@pidgin.im>
parents:
15322
diff
changeset
|
211 | */ |
|
52ba52a13827
[gaim-migrate @ 18083]
Mark Doliner <markdoliner@pidgin.im>
parents:
15322
diff
changeset
|
212 | ChecksumData *checksum_data; |
|
52ba52a13827
[gaim-migrate @ 18083]
Mark Doliner <markdoliner@pidgin.im>
parents:
15322
diff
changeset
|
213 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
214 | /* TODOFT */ |
| 15884 | 215 | PurpleXfer *xfer; |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
216 | OftFrame xferdata; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
217 | guint sending_data_timer; |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
218 | }; |
| 13235 | 219 | |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
220 | /* |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
221 | * For all peer connections |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
222 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
223 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
224 | /** |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
225 | * Create a new PeerConnection structure and initialize it with some |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
226 | * sane defaults. |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
227 | * |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
228 | * @param type The type of the peer connection. One of |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
229 | * OSCAR_CAPABILITY_DIRECTIM or OSCAR_CAPABILITY_SENDFILE. |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
230 | */ |
|
25889
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
23079
diff
changeset
|
231 | PeerConnection *peer_connection_new(OscarData *od, OscarCapability type, const char *bn); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
232 | |
|
14464
b7bca43f75b3
[gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents:
14329
diff
changeset
|
233 | void peer_connection_destroy(PeerConnection *conn, OscarDisconnectReason reason, const gchar *error_message); |
|
b7bca43f75b3
[gaim-migrate @ 17110]
Mark Doliner <markdoliner@pidgin.im>
parents:
14329
diff
changeset
|
234 | void peer_connection_schedule_destroy(PeerConnection *conn, OscarDisconnectReason reason, const gchar *error_message); |
|
25889
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
23079
diff
changeset
|
235 | PeerConnection *peer_connection_find_by_type(OscarData *od, const char *bn, OscarCapability type); |
|
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
23079
diff
changeset
|
236 | PeerConnection *peer_connection_find_by_cookie(OscarData *od, const char *bn, const guchar *cookie); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
237 | |
| 15884 | 238 | void peer_connection_listen_cb(gpointer data, gint source, PurpleInputCondition cond); |
| 239 | void peer_connection_recv_cb(gpointer data, gint source, PurpleInputCondition cond); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
240 | void peer_connection_send(PeerConnection *conn, ByteStream *bs); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
241 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
242 | void peer_connection_trynext(PeerConnection *conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
243 | void peer_connection_finalize_connection(PeerConnection *conn); |
|
25889
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
23079
diff
changeset
|
244 | void peer_connection_propose(OscarData *od, OscarCapability type, const char *bn); |
|
26d9ca30335c
Change "screen name" to "username" or "buddy name" in a whole bunch of
Mark Doliner <markdoliner@pidgin.im>
parents:
23079
diff
changeset
|
245 | void peer_connection_got_proposition(OscarData *od, const gchar *bn, const gchar *message, IcbmArgsCh2 *args); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
246 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
247 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
248 | * For ODC |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
249 | */ |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
250 | void peer_odc_close(PeerConnection *conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
251 | void peer_odc_recv_frame(PeerConnection *conn, ByteStream *bs); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
252 | void peer_odc_send_cookie(PeerConnection *conn); |
| 15884 | 253 | void peer_odc_send_typing(PeerConnection *conn, PurpleTypingState typing); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
254 | void peer_odc_send_im(PeerConnection *conn, const char *msg, int len, int encoding, gboolean autoreply); |
| 13235 | 255 | |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
256 | /* |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
257 | * For OFT |
|
13240
db5187cc40d1
[gaim-migrate @ 15605]
Mark Doliner <markdoliner@pidgin.im>
parents:
13235
diff
changeset
|
258 | */ |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
259 | void peer_oft_close(PeerConnection *conn); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
260 | void peer_oft_recv_frame(PeerConnection *conn, ByteStream *bs); |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
261 | void peer_oft_send_prompt(PeerConnection *conn); |
|
15354
52ba52a13827
[gaim-migrate @ 18083]
Mark Doliner <markdoliner@pidgin.im>
parents:
15322
diff
changeset
|
262 | void peer_oft_checksum_destroy(ChecksumData *checksum_data); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
263 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
264 | /* Xfer callbacks for receiving a file */ |
| 15884 | 265 | void peer_oft_recvcb_init(PurpleXfer *xfer); |
| 266 | void peer_oft_recvcb_end(PurpleXfer *xfer); | |
| 267 | void peer_oft_recvcb_ack_recv(PurpleXfer *xfer, const guchar *buffer, size_t size); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
268 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
269 | /* Xfer callbacks for sending a file */ |
| 15884 | 270 | void peer_oft_sendcb_init(PurpleXfer *xfer); |
| 271 | void peer_oft_sendcb_ack(PurpleXfer *xfer, const guchar *buffer, size_t size); | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
272 | |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
273 | /* Xfer callbacks for both sending and receiving */ |
| 15884 | 274 | void peer_oft_cb_generic_cancel(PurpleXfer *xfer); |
| 13235 | 275 | |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
276 | /* |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
277 | * For peer proxying |
|
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
278 | */ |
|
14171
351b731b9553
[gaim-migrate @ 16743]
Mark Doliner <markdoliner@pidgin.im>
parents:
14166
diff
changeset
|
279 | void peer_proxy_connection_established_cb(gpointer data, gint source, const gchar *error_message); |
|
13593
3450a7cede99
[gaim-migrate @ 15978]
Mark Doliner <markdoliner@pidgin.im>
parents:
13253
diff
changeset
|
280 | |
| 13235 | 281 | #endif /* _PEER_H_ */ |