Tue, 22 Jun 2010 22:44:28 +0000
Destroy Parts when the SlpMessage is destroyed.
| 4542 | 1 | /** |
| 2 | * @file msn.h The MSN protocol plugin | |
| 3 | * | |
| 15884 | 4 | * purple |
| 4542 | 5 | * |
| 15884 | 6 | * Purple is the legal property of its developers, whose names are too numerous |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 | * source distribution. |
|
6701
7e2db9273748
[gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents:
6516
diff
changeset
|
9 | * |
| 4542 | 10 | * This program is free software; you can redistribute it and/or modify |
| 11 | * it under the terms of the GNU General Public License as published by | |
| 12 | * the Free Software Foundation; either version 2 of the License, or | |
| 13 | * (at your option) any later version. | |
| 14 | * | |
| 15 | * This program is distributed in the hope that it will be useful, | |
| 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | * GNU General Public License for more details. | |
| 19 | * | |
| 20 | * You should have received a copy of the GNU General Public License | |
| 21 | * along with this program; 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:
19643
diff
changeset
|
22 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 4542 | 23 | */ |
|
29305
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
24 | #ifndef MSN_H |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
25 | #define MSN_H |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
26 | |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
27 | typedef enum |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
28 | { |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
29 | MSN_CLIENT_CAP_WIN_MOBILE = 0x0000001, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
30 | MSN_CLIENT_CAP_INK_GIF = 0x0000004, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
31 | MSN_CLIENT_CAP_INK_ISF = 0x0000008, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
32 | MSN_CLIENT_CAP_VIDEO_CHAT = 0x0000010, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
33 | MSN_CLIENT_CAP_PACKET = 0x0000020, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
34 | MSN_CLIENT_CAP_MSNMOBILE = 0x0000040, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
35 | MSN_CLIENT_CAP_MSNDIRECT = 0x0000080, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
36 | MSN_CLIENT_CAP_WEBMSGR = 0x0000200, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
37 | MSN_CLIENT_CAP_TGW = 0x0000800, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
38 | MSN_CLIENT_CAP_SPACE = 0x0001000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
39 | MSN_CLIENT_CAP_MCE = 0x0002000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
40 | MSN_CLIENT_CAP_DIRECTIM = 0x0004000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
41 | MSN_CLIENT_CAP_WINKS = 0x0008000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
42 | MSN_CLIENT_CAP_SEARCH = 0x0010000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
43 | MSN_CLIENT_CAP_BOT = 0x0020000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
44 | MSN_CLIENT_CAP_VOICEIM = 0x0040000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
45 | MSN_CLIENT_CAP_SCHANNEL = 0x0080000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
46 | MSN_CLIENT_CAP_SIP_INVITE = 0x0100000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
47 | MSN_CLIENT_CAP_SDRIVE = 0x0400000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
48 | MSN_CLIENT_CAP_ONECARE = 0x1000000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
49 | MSN_CLIENT_CAP_P2P_TURN = 0x2000000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
50 | MSN_CLIENT_CAP_P2P_BOOTSTRAP_VIA_UUN = 0x4000000, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
51 | } MsnClientCaps; |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
52 | |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
53 | typedef enum |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
54 | { |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
55 | MSN_CLIENT_EXT_CAP_RTC_VIDEO = 0x10, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
56 | MSN_CLIENT_EXT_CAP_P2PV2 = 0x20 |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
57 | } MsnClientExtCaps; |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
58 | |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
59 | typedef enum |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
60 | { |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
61 | MSN_CLIENT_VER_5_0 = 0x00, |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
62 | MSN_CLIENT_VER_6_0 = 0x10, /* MSNC1 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
63 | MSN_CLIENT_VER_6_1 = 0x20, /* MSNC2 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
64 | MSN_CLIENT_VER_6_2 = 0x30, /* MSNC3 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
65 | MSN_CLIENT_VER_7_0 = 0x40, /* MSNC4 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
66 | MSN_CLIENT_VER_7_5 = 0x50, /* MSNC5 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
67 | MSN_CLIENT_VER_8_0 = 0x60, /* MSNC6 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
68 | MSN_CLIENT_VER_8_1 = 0x70, /* MSNC7 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
69 | MSN_CLIENT_VER_8_5 = 0x80, /* MSNC8 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
70 | MSN_CLIENT_VER_9_0 = 0x90, /* MSNC9 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
71 | MSN_CLIENT_VER_14_0 = 0xA0 /* MSNC10 */ |
|
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
72 | } MsnClientVerId; |
| 4542 | 73 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5717
diff
changeset
|
74 | #include "internal.h" |
| 4542 | 75 | |
|
30949
db6e378c493b
Replace servconn.h with session.h because it's the one needed here.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
30948
diff
changeset
|
76 | #include "session.h" |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
8886
diff
changeset
|
77 | |
|
24420
e83317602b22
attempts to resend message on switchboard error once, tested by maually
Ka-Hing Cheung <khc@pidgin.im>
parents:
23817
diff
changeset
|
78 | #include "msg.h" |
|
e83317602b22
attempts to resend message on switchboard error once, tested by maually
Ka-Hing Cheung <khc@pidgin.im>
parents:
23817
diff
changeset
|
79 | |
| 4542 | 80 | #define MSN_BUF_LEN 8192 |
| 81 | ||
|
23817
aff31c9b1fad
Clean up some #define's in msn.h and various supporting changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23790
diff
changeset
|
82 | /* Windows Live Messenger Server*/ |
| 4542 | 83 | #define MSN_SERVER "messenger.hotmail.com" |
|
19989
1f1bb361a75a
A fix from Laszlo Pandy to make the MSN HTTP Method work again. Fixes #2638 and should make a number of people happy. This introduces a new string that isn't marked as translatable for 2.2.0 because it is so late in the game.
Daniel Atallah <datallah@pidgin.im>
parents:
19913
diff
changeset
|
84 | #define MSN_HTTPCONN_SERVER "gateway.messenger.hotmail.com" |
| 4542 | 85 | #define MSN_PORT 1863 |
|
29420
c81c525111db
Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28959
diff
changeset
|
86 | #define WLM_PROT_VER 16 |
| 13856 | 87 | |
|
29420
c81c525111db
Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28959
diff
changeset
|
88 | #define WLM_MAX_PROTOCOL 16 |
|
23755
6b2413139fae
Patch 1 from Qulogic, this one mostly updates the version sent by pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
20602
diff
changeset
|
89 | #define WLM_MIN_PROTOCOL 15 |
| 13853 | 90 | |
| 4542 | 91 | #define MSN_TYPING_RECV_TIMEOUT 6 |
| 92 | #define MSN_TYPING_SEND_TIMEOUT 4 | |
| 93 | ||
|
17533
1968afe33448
Improve parsing user info for MSN, Fixes #690
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
94 | #define PROFILE_URL "http://spaces.live.com/profile.aspx?mem=" |
| 13862 | 95 | #define PHOTO_URL " contactparams:photopreauthurl=\"" |
| 4542 | 96 | |
|
10504
eae130eefbfe
[gaim-migrate @ 11796]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10481
diff
changeset
|
97 | #define BUDDY_ALIAS_MAXLEN 387 |
| 4542 | 98 | |
|
26738
b6314eb1f63d
Inform the user when someone tries to initiate a video call with them in msn.
Michael Ruprecht <maiku@pidgin.im>
parents:
24420
diff
changeset
|
99 | #define MSN_CAM_GUID "4BD96FC0-AB17-4425-A14A-439185962DC8" |
|
b6314eb1f63d
Inform the user when someone tries to initiate a video call with them in msn.
Michael Ruprecht <maiku@pidgin.im>
parents:
24420
diff
changeset
|
100 | #define MSN_CAM_REQUEST_GUID "1C9AA97E-9C05-4583-A3BD-908A196F1E92" |
|
23817
aff31c9b1fad
Clean up some #define's in msn.h and various supporting changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23790
diff
changeset
|
101 | #define MSN_FT_GUID "5D3E02AB-6190-11D3-BBBB-00C04F795683" |
|
aff31c9b1fad
Clean up some #define's in msn.h and various supporting changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23790
diff
changeset
|
102 | #define MSN_OBJ_GUID "A4268EEC-FEC5-49E5-95C3-F126696BDBF6" |
| 4542 | 103 | |
|
5316
ec9cbe50e70c
[gaim-migrate @ 5688]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
104 | #define MSN_CLIENTINFO \ |
| 15884 | 105 | "Client-Name: Purple/" VERSION "\r\n" \ |
|
6786
096ebddea1f3
[gaim-migrate @ 7325]
Christian Hammond <chipx86@chipx86.com>
parents:
6701
diff
changeset
|
106 | "Chat-Logging: Y\r\n" |
|
5316
ec9cbe50e70c
[gaim-migrate @ 5688]
Christian Hammond <chipx86@chipx86.com>
parents:
5309
diff
changeset
|
107 | |
|
19643
1794c23309d3
In MSN prpl, use attention API. Can be disabled by undefining
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17533
diff
changeset
|
108 | /* Index into attention_types */ |
|
1794c23309d3
In MSN prpl, use attention API. Can be disabled by undefining
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17533
diff
changeset
|
109 | #define MSN_NUDGE 0 |
|
1794c23309d3
In MSN prpl, use attention API. Can be disabled by undefining
Jeff Connelly <jeff2@soc.pidgin.im>
parents:
17533
diff
changeset
|
110 | |
|
29420
c81c525111db
Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28959
diff
changeset
|
111 | #define MSN_CLIENT_ID_VERSION MSN_CLIENT_VER_9_0 |
|
28211
c269086f0160
Disable receiving Winks for now since we have no UI for it.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27691
diff
changeset
|
112 | #define MSN_CLIENT_ID_CAPABILITIES (MSN_CLIENT_CAP_PACKET|MSN_CLIENT_CAP_INK_GIF|MSN_CLIENT_CAP_VOICEIM) |
|
29420
c81c525111db
Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
28959
diff
changeset
|
113 | #define MSN_CLIENT_ID_EXT_CAPS (0) |
|
7590
54b26062c7e0
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
6832
diff
changeset
|
114 | |
|
54b26062c7e0
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
6832
diff
changeset
|
115 | #define MSN_CLIENT_ID \ |
|
54b26062c7e0
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
6832
diff
changeset
|
116 | ((MSN_CLIENT_ID_VERSION << 24) | \ |
|
54b26062c7e0
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
6832
diff
changeset
|
117 | (MSN_CLIENT_ID_CAPABILITIES)) |
|
54b26062c7e0
[gaim-migrate @ 8208]
Christian Hammond <chipx86@chipx86.com>
parents:
6832
diff
changeset
|
118 | |
|
30196
6a2c93988900
Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
29305
diff
changeset
|
119 | void |
|
6a2c93988900
Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
29305
diff
changeset
|
120 | msn_set_public_alias(PurpleConnection *gc, const char *alias, |
|
6a2c93988900
Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
29305
diff
changeset
|
121 | PurpleSetPublicAliasSuccessCallback success_cb, |
|
6a2c93988900
Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
29305
diff
changeset
|
122 | PurpleSetPublicAliasFailureCallback failure_cb); |
|
20542
e92b022fd611
In the initial ADL listing, send the commands in the correct sequence as required by the server: BLP, ADL and PRP. When the server acknowledges this initial ADL, send CHG with status information
Carlos Silva <typ0@pidgin.im>
parents:
20532
diff
changeset
|
123 | void msn_send_privacy(PurpleConnection *gc); |
|
24420
e83317602b22
attempts to resend message on switchboard error once, tested by maually
Ka-Hing Cheung <khc@pidgin.im>
parents:
23817
diff
changeset
|
124 | void msn_send_im_message(MsnSession *session, MsnMessage *msg); |
|
20476
198222e01a7d
The second msn-p13-merge-head.diff.gz from SF Patch #162854 from Ka-Hing Cheung.
Richard Laager <rlaager@pidgin.im>
parents:
20472
diff
changeset
|
125 | |
|
29305
202cb72ed5b0
Minor header file cleanup. Mostly I wanted to move some enums above some #includes
Mark Doliner <markdoliner@pidgin.im>
parents:
28959
diff
changeset
|
126 | #endif /* MSN_H */ |