libpurple/protocols/msn/p2p.h

Tue, 04 Jan 2011 04:51:48 +0000

author
Jorge Villaseñor <masca@cpw.pidgin.im>
date
Tue, 04 Jan 2011 04:51:48 +0000
branch
cpw.masca.p2p
changeset 31291
ed74e01069ee
parent 31290
7231c1af5197
child 31292
889c5f6bceee
permissions
-rw-r--r--

Add TLV and data fields to P2Pv2 Header.

31180
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
1 /**
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
2 * @file p2p.h MSN P2P functions
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
3 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
4 * purple
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
5 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
8 * source distribution.
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
9 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
10 * This program is free software; you can redistribute it and/or modify
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
11 * it under the terms of the GNU General Public License as published by
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
13 * (at your option) any later version.
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
14 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
15 * This program is distributed in the hope that it will be useful,
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
18 * GNU General Public License for more details.
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
19 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
20 * You should have received a copy of the GNU General Public License
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
21 * along with this program; if not, write to the Free Software
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
23 */
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31070
diff changeset
24
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
25 #ifndef MSN_P2P_H
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
26 #define MSN_P2P_H
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
27
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
28 typedef struct {
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
29 guint32 session_id;
30968
414d71c431a2 Chang member name so it is compatible with MsnSlpHeader struct names.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30967
diff changeset
30 guint32 id;
31065
6094ffb96a11 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31050
diff changeset
31 /**
6094ffb96a11 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31050
diff changeset
32 * In a MsnSlpMessage:
6094ffb96a11 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31050
diff changeset
33 * For outgoing messages this is the number of bytes from buffer that
6094ffb96a11 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31050
diff changeset
34 * have already been sent out. For incoming messages this is the
6094ffb96a11 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31050
diff changeset
35 * number of bytes that have been written to buffer.
6094ffb96a11 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31050
diff changeset
36 */
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
37 guint64 offset;
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
38 guint64 total_size;
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
39 guint32 length;
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
40 guint32 flags;
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
41 guint32 ack_id;
30968
414d71c431a2 Chang member name so it is compatible with MsnSlpHeader struct names.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30967
diff changeset
42 guint32 ack_sub_id;
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
43 guint64 ack_size;
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
44 /* guint8 body[1]; */
30971
39a254a27343 Drop Binary from the struct name.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30970
diff changeset
45 } MsnP2PHeader;
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
46 #define P2P_PACKET_HEADER_SIZE (6 * 4 + 3 * 8)
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
47
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
48 /* Used for DCs to store nonces */
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
49 #define P2P_HEADER_ACK_ID_OFFSET (2*4 + 2*8 + 2*4)
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
50
31041
60e29347974b Add initial P2Pv2 header definition.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31001
diff changeset
51 typedef struct {
60e29347974b Add initial P2Pv2 header definition.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31001
diff changeset
52 guint8 header_len;
60e29347974b Add initial P2Pv2 header definition.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31001
diff changeset
53 guint8 opcode;
31050
5d8f53b24b35 Fix some field sizes in P2Pv2 header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31046
diff changeset
54 guint16 message_len;
5d8f53b24b35 Fix some field sizes in P2Pv2 header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31046
diff changeset
55 guint32 base_id;
31291
ed74e01069ee Add TLV and data fields to P2Pv2 Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31290
diff changeset
56 GSList *tlv;
ed74e01069ee Add TLV and data fields to P2Pv2 Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31290
diff changeset
57 char *data;
31041
60e29347974b Add initial P2Pv2 header definition.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31001
diff changeset
58 } MsnP2Pv2Header;
60e29347974b Add initial P2Pv2 header definition.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31001
diff changeset
59
31290
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
60 typedef struct {
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
61 guint8 length;
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
62 guint8 TF; /**< Type-First combination */
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
63 guint16 package_num;
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
64 guint32 session;
31291
ed74e01069ee Add TLV and data fields to P2Pv2 Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31290
diff changeset
65 GSList *tlv;
31290
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
66 char *data;
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
67 } MsnP2Pv2DataHeader;
7231c1af5197 Add P2Pv2 Data Header struct.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31289
diff changeset
68
31230
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
69 typedef enum
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
70 {
31289
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
71 OP_NONE = 0x00, /**< None, Nothing required. */
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
72 OP_SYN = 0x01, /**< SYN, just like TCP. */
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
73 OP_RAK = 0x02 /**< Request for Ack. */
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
74 } OpCode;
31230
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
75
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
76 typedef enum
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
77 {
31289
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
78 TF_FIRST = 0x01, /**< The first package. */
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
79 TF_OBJ = 0x04, /**< Payload contains binary data for MsnObject. */
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
80 TF_FILE = 0x06 /**< Payload contains binary data. */
31230
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
81 } TF;
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
82
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
83 typedef enum
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
84 {
31289
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
85 TLP_PEER_INFO = 0x01, /**< Client peer info */
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
86 TLP_ACK = 0x02, /**< ACK */
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
87 TLP_NAK = 0x03 /**< NAK */
31230
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
88 } TLP;
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
89
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
90 typedef enum
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
91 {
31289
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
92 TLP_LEN_PEER_INFO = 12,
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
93 TLP_LEN_ACK = 4,
986c10e53e82 Compile.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31288
diff changeset
94 TLP_LEN_NAK = 4
31230
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
95 } TLPLength;
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
96
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
97 #define DLP_REMAINING 0x01; /**< Indicates the remaining data to transfer.*/
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
98 #define DLP_REMAINING_LEN 8
4f4c81c94b12 Add some constants used by P2Pv2.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31185
diff changeset
99
30970
432037e01d4f Drop MsnSlpFooter in favor of MsnP2pFooter.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30968
diff changeset
100 typedef struct
432037e01d4f Drop MsnSlpFooter in favor of MsnP2pFooter.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30968
diff changeset
101 {
432037e01d4f Drop MsnSlpFooter in favor of MsnP2pFooter.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30968
diff changeset
102 guint32 value;
432037e01d4f Drop MsnSlpFooter in favor of MsnP2pFooter.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30968
diff changeset
103 } MsnP2PFooter;
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
104 #define P2P_PACKET_FOOTER_SIZE (1 * 4)
30970
432037e01d4f Drop MsnSlpFooter in favor of MsnP2pFooter.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30968
diff changeset
105
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
106 typedef enum
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
107 {
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
108 P2P_NO_FLAG = 0x0, /**< No flags specified */
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
109 P2P_OUT_OF_ORDER = 0x1, /**< Chunk out-of-order */
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
110 P2P_ACK = 0x2, /**< Acknowledgement */
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
111 P2P_PENDING_INVITE = 0x4, /**< There is a pending invite */
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
112 P2P_BINARY_ERROR = 0x8, /**< Error on the binary level */
31043
34a5263c96a6 Add some more flag definitions to the p2p flags.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31041
diff changeset
113 P2P_FILE = 0x10, /**< File */
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
114 P2P_MSN_OBJ_DATA = 0x20, /**< MsnObject data */
31043
34a5263c96a6 Add some more flag definitions to the p2p flags.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31041
diff changeset
115 P2P_CLOSE = 0x40, /**< Close session */
34a5263c96a6 Add some more flag definitions to the p2p flags.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31041
diff changeset
116 P2P_TLP_ERROR = 0x80, /**< Error at transport layer protocol */
34a5263c96a6 Add some more flag definitions to the p2p flags.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31041
diff changeset
117 P2P_DC_HANDSHAKE = 0x100, /**< Direct Handshake */
31185
5ffa2e7ba2e1 Fix the name of this flag.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
118 P2P_WLM2009_COMP = 0x1000000, /**< Compatibility with WLM 2009 */
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
119 P2P_FILE_DATA = 0x1000030 /**< File transfer data */
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
120 } MsnP2PHeaderFlag;
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
121 /* Info From:
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
122 * http://msnpiki.msnfanatic.com/index.php/MSNC:P2Pv1_Headers#Flags
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
123 * http://trac.kmess.org/changeset/ba04d0c825769d23370511031c47f6be75fe9b86
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
124 * #7180
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
125 */
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
126
31046
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
127 typedef enum
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
128 {
31237
9c2341bd9199 Fix typo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31185
diff changeset
129 P2P_APPID_SESSION = 0x0, /**< Negotiating session */
31046
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
130 P2P_APPID_OBJ = 0x1, /**< MsnObject (Display or Emoticon) */
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
131 P2P_APPID_FILE = 0x2, /**< File transfer */
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
132 P2P_APPID_EMOTE = 0xB, /**< CustomEmoticon */
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
133 P2P_APPID_DISPLAY = 0xC /**< Display Image */
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
134 } MsnP2PAppId;
33671e05cf24 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31043
diff changeset
135
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
136 MsnP2PHeader *
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
137 msn_p2p_header_from_wire(const char *wire);
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
138
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
139 char *
30972
6183fdc2c860 Move parsing of the p2p header to p2p to avoid duplicated code.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30971
diff changeset
140 msn_p2p_header_to_wire(MsnP2PHeader *header);
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
141
30984
2898559aaaa7 Add P2PFooter helper functions.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30976
diff changeset
142 MsnP2PFooter *
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
143 msn_p2p_footer_from_wire(const char *wire);
30984
2898559aaaa7 Add P2PFooter helper functions.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30976
diff changeset
144
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31237
diff changeset
145 char *
30984
2898559aaaa7 Add P2PFooter helper functions.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30976
diff changeset
146 msn_p2p_footer_to_wire(MsnP2PFooter *footer);
2898559aaaa7 Add P2PFooter helper functions.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30976
diff changeset
147
31070
2a60d87864b9 Avoid duplicated code using a util function to check the flags.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31065
diff changeset
148 gboolean
2a60d87864b9 Avoid duplicated code using a util function to check the flags.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31065
diff changeset
149 msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags);
2a60d87864b9 Avoid duplicated code using a util function to check the flags.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31065
diff changeset
150
30967
578391ef28a4 Actually add the new file.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
151 #endif /* MSN_P2P_H */

mercurial