annotate libpurple/protocols/msn/p2p.h @ 31554:fe1a13094237

Compile.
author masca@cpw.pidgin.im
date Tue, 04 Jan 2011 04:29:36 +0000
parents 135868ec0aa9
children ea3c7de5a07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30969
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
1 /**
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
2 * @file p2p.h MSN P2P functions
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
3 *
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
4 * purple
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
5 *
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
8 * source distribution.
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
9 *
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
10 * This program is free software; you can redistribute it and/or modify
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
11 * it under the terms of the GNU General Public License as published by
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
13 * (at your option) any later version.
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
14 *
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
15 * This program is distributed in the hope that it will be useful,
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
18 * GNU General Public License for more details.
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
19 *
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
20 * You should have received a copy of the GNU General Public License
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
21 * along with this program; if not, write to the Free Software
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
23 */
72e6fa6caecc These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30868
diff changeset
24
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
25 #ifndef MSN_P2P_H
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
26 #define MSN_P2P_H
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
27
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
28 typedef struct {
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
29 guint32 session_id;
30764
d4869cd86680 Chang member name so it is compatible with MsnSlpHeader struct names.
masca@cpw.pidgin.im
parents: 30763
diff changeset
30 guint32 id;
30863
16ab805406d1 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
masca@cpw.pidgin.im
parents: 30848
diff changeset
31 /**
16ab805406d1 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
masca@cpw.pidgin.im
parents: 30848
diff changeset
32 * In a MsnSlpMessage:
16ab805406d1 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
masca@cpw.pidgin.im
parents: 30848
diff changeset
33 * For outgoing messages this is the number of bytes from buffer that
16ab805406d1 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
masca@cpw.pidgin.im
parents: 30848
diff changeset
34 * have already been sent out. For incoming messages this is the
16ab805406d1 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
masca@cpw.pidgin.im
parents: 30848
diff changeset
35 * number of bytes that have been written to buffer.
16ab805406d1 Get rid of the offset field in the SlpMessage in favor of the one in the Header.
masca@cpw.pidgin.im
parents: 30848
diff changeset
36 */
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
37 guint64 offset;
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
38 guint64 total_size;
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
39 guint32 length;
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
40 guint32 flags;
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
41 guint32 ack_id;
30764
d4869cd86680 Chang member name so it is compatible with MsnSlpHeader struct names.
masca@cpw.pidgin.im
parents: 30763
diff changeset
42 guint32 ack_sub_id;
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
43 guint64 ack_size;
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
44 /* guint8 body[1]; */
30767
e5e712cf9f7e Drop Binary from the struct name.
masca@cpw.pidgin.im
parents: 30766
diff changeset
45 } MsnP2PHeader;
31044
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
46 #define P2P_PACKET_HEADER_SIZE (6 * 4 + 3 * 8)
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
47
31044
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
48 /* Used for DCs to store nonces */
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
49 #define P2P_HEADER_ACK_ID_OFFSET (2*4 + 2*8 + 2*4)
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
50
30839
7315ec8b71c7 Add initial P2Pv2 header definition.
masca@cpw.pidgin.im
parents: 30799
diff changeset
51 typedef struct {
7315ec8b71c7 Add initial P2Pv2 header definition.
masca@cpw.pidgin.im
parents: 30799
diff changeset
52 guint8 header_len;
7315ec8b71c7 Add initial P2Pv2 header definition.
masca@cpw.pidgin.im
parents: 30799
diff changeset
53 guint8 opcode;
30848
544221aadf6e Fix some field sizes in P2Pv2 header.
masca@cpw.pidgin.im
parents: 30844
diff changeset
54 guint16 message_len;
544221aadf6e Fix some field sizes in P2Pv2 header.
masca@cpw.pidgin.im
parents: 30844
diff changeset
55 guint32 base_id;
30839
7315ec8b71c7 Add initial P2Pv2 header definition.
masca@cpw.pidgin.im
parents: 30799
diff changeset
56 } MsnP2Pv2Header;
7315ec8b71c7 Add initial P2Pv2 header definition.
masca@cpw.pidgin.im
parents: 30799
diff changeset
57
31552
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
58 typedef enum
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
59 {
31554
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
60 OP_NONE = 0x00, /**< None, Nothing required. */
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
61 OP_SYN = 0x01, /**< SYN, just like TCP. */
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
62 OP_RAK = 0x02 /**< Request for Ack. */
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
63 } OpCode;
31552
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
64
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
65 typedef enum
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
66 {
31554
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
67 TF_FIRST = 0x01, /**< The first package. */
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
68 TF_OBJ = 0x04, /**< Payload contains binary data for MsnObject. */
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
69 TF_FILE = 0x06 /**< Payload contains binary data. */
31552
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
70 } TF;
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
71
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
72 typedef enum
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
73 {
31554
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
74 TLP_PEER_INFO = 0x01, /**< Client peer info */
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
75 TLP_ACK = 0x02, /**< ACK */
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
76 TLP_NAK = 0x03 /**< NAK */
31552
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
77 } TLP;
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
78
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
79 typedef enum
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
80 {
31554
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
81 TLP_LEN_PEER_INFO = 12,
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
82 TLP_LEN_ACK = 4,
fe1a13094237 Compile.
masca@cpw.pidgin.im
parents: 31553
diff changeset
83 TLP_LEN_NAK = 4
31552
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
84 } TLPLength;
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
85
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
86 #define DLP_REMAINING 0x01; /**< Indicates the remaining data to transfer.*/
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
87 #define DLP_REMAINING_LEN 8
9be4761c87d4 Add some constants used by P2Pv2.
masca@cpw.pidgin.im
parents: 30974
diff changeset
88
30766
c2e911eeffc9 Drop MsnSlpFooter in favor of MsnP2pFooter.
masca@cpw.pidgin.im
parents: 30764
diff changeset
89 typedef struct
c2e911eeffc9 Drop MsnSlpFooter in favor of MsnP2pFooter.
masca@cpw.pidgin.im
parents: 30764
diff changeset
90 {
c2e911eeffc9 Drop MsnSlpFooter in favor of MsnP2pFooter.
masca@cpw.pidgin.im
parents: 30764
diff changeset
91 guint32 value;
c2e911eeffc9 Drop MsnSlpFooter in favor of MsnP2pFooter.
masca@cpw.pidgin.im
parents: 30764
diff changeset
92 } MsnP2PFooter;
31044
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
93 #define P2P_PACKET_FOOTER_SIZE (1 * 4)
30766
c2e911eeffc9 Drop MsnSlpFooter in favor of MsnP2pFooter.
masca@cpw.pidgin.im
parents: 30764
diff changeset
94
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
95 typedef enum
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
96 {
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
97 P2P_NO_FLAG = 0x0, /**< No flags specified */
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
98 P2P_OUT_OF_ORDER = 0x1, /**< Chunk out-of-order */
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
99 P2P_ACK = 0x2, /**< Acknowledgement */
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
100 P2P_PENDING_INVITE = 0x4, /**< There is a pending invite */
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
101 P2P_BINARY_ERROR = 0x8, /**< Error on the binary level */
30841
01dea46bbb42 Add some more flag definitions to the p2p flags.
masca@cpw.pidgin.im
parents: 30839
diff changeset
102 P2P_FILE = 0x10, /**< File */
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
103 P2P_MSN_OBJ_DATA = 0x20, /**< MsnObject data */
30841
01dea46bbb42 Add some more flag definitions to the p2p flags.
masca@cpw.pidgin.im
parents: 30839
diff changeset
104 P2P_CLOSE = 0x40, /**< Close session */
01dea46bbb42 Add some more flag definitions to the p2p flags.
masca@cpw.pidgin.im
parents: 30839
diff changeset
105 P2P_TLP_ERROR = 0x80, /**< Error at transport layer protocol */
01dea46bbb42 Add some more flag definitions to the p2p flags.
masca@cpw.pidgin.im
parents: 30839
diff changeset
106 P2P_DC_HANDSHAKE = 0x100, /**< Direct Handshake */
30974
f26e961e1274 Fix the name of this flag.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30969
diff changeset
107 P2P_WLM2009_COMP = 0x1000000, /**< Compatibility with WLM 2009 */
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
108 P2P_FILE_DATA = 0x1000030 /**< File transfer data */
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
109 } MsnP2PHeaderFlag;
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
110 /* Info From:
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
111 * http://msnpiki.msnfanatic.com/index.php/MSNC:P2Pv1_Headers#Flags
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
112 * http://trac.kmess.org/changeset/ba04d0c825769d23370511031c47f6be75fe9b86
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
113 * #7180
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
114 */
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
115
30844
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
116 typedef enum
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
117 {
31033
52616e4f2299 Fix typo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30974
diff changeset
118 P2P_APPID_SESSION = 0x0, /**< Negotiating session */
30844
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
119 P2P_APPID_OBJ = 0x1, /**< MsnObject (Display or Emoticon) */
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
120 P2P_APPID_FILE = 0x2, /**< File transfer */
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
121 P2P_APPID_EMOTE = 0xB, /**< CustomEmoticon */
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
122 P2P_APPID_DISPLAY = 0xC /**< Display Image */
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
123 } MsnP2PAppId;
7b1b7a4e0bb4 Documetn P2P Application ID in a enum and use it instead of 'magic numbers'.
masca@cpw.pidgin.im
parents: 30841
diff changeset
124
31044
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
125 MsnP2PHeader *
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
126 msn_p2p_header_from_wire(const char *wire);
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
127
31044
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
128 char *
30768
f66e289bebc6 Move parsing of the p2p header to p2p to avoid duplicated code.
masca@cpw.pidgin.im
parents: 30767
diff changeset
129 msn_p2p_header_to_wire(MsnP2PHeader *header);
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
130
30782
3ccddae82532 Add P2PFooter helper functions.
masca@cpw.pidgin.im
parents: 30772
diff changeset
131 MsnP2PFooter *
31044
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
132 msn_p2p_footer_from_wire(const char *wire);
30782
3ccddae82532 Add P2PFooter helper functions.
masca@cpw.pidgin.im
parents: 30772
diff changeset
133
31044
7b771e6f1142 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31033
diff changeset
134 char *
30782
3ccddae82532 Add P2PFooter helper functions.
masca@cpw.pidgin.im
parents: 30772
diff changeset
135 msn_p2p_footer_to_wire(MsnP2PFooter *footer);
3ccddae82532 Add P2PFooter helper functions.
masca@cpw.pidgin.im
parents: 30772
diff changeset
136
30868
5964f65c17ed Avoid duplicated code using a util function to check the flags.
masca@cpw.pidgin.im
parents: 30863
diff changeset
137 gboolean
5964f65c17ed Avoid duplicated code using a util function to check the flags.
masca@cpw.pidgin.im
parents: 30863
diff changeset
138 msn_p2p_msg_is_data(const MsnP2PHeaderFlag flags);
5964f65c17ed Avoid duplicated code using a util function to check the flags.
masca@cpw.pidgin.im
parents: 30863
diff changeset
139
30763
83eb90d18a96 Actually add the new file.
masca@cpw.pidgin.im
parents:
diff changeset
140 #endif /* MSN_P2P_H */