Mercurial > pidgin
comparison src/protocols/msn/msnslp.c @ 6827:1cfbb731aa1f
[gaim-migrate @ 7372]
Several fixes for attempted NULL pointer frees, and some MSNSLP fixes.
Still not ready for use yet.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sun, 14 Sep 2003 01:59:09 +0000 |
parents | 8f228a7d5076 |
children | a372cf34387e |
comparison
equal
deleted
inserted
replaced
6826:2adf21e70601 | 6827:1cfbb731aa1f |
---|---|
117 msn_message_set_flag(msg, 'D'); | 117 msn_message_set_flag(msg, 'D'); |
118 msn_message_set_content_type(msg, "application/x-msnmsgrp2p"); | 118 msn_message_set_content_type(msg, "application/x-msnmsgrp2p"); |
119 msn_message_set_attr(msg, "P2P-Dest", | 119 msn_message_set_attr(msg, "P2P-Dest", |
120 msn_user_get_passport(msn_message_get_receiver(msg))); | 120 msn_user_get_passport(msn_message_get_receiver(msg))); |
121 | 121 |
122 if (msg->msnslp_header.session_id == 0) | |
123 msg->msnslp_footer.app_id = 1; | |
124 | |
122 msn_switchboard_send_msg(slpsession->swboard, msg); | 125 msn_switchboard_send_msg(slpsession->swboard, msg); |
123 } | 126 } |
124 | 127 |
125 void | 128 void |
126 msn_slp_session_request_user_display(MsnSlpSession *slpsession, | 129 msn_slp_session_request_user_display(MsnSlpSession *slpsession, |
129 const MsnObject *obj) | 132 const MsnObject *obj) |
130 { | 133 { |
131 MsnMessage *invite_msg; | 134 MsnMessage *invite_msg; |
132 char *msnobj_data; | 135 char *msnobj_data; |
133 char *msnobj_base64; | 136 char *msnobj_base64; |
137 char *branch; | |
138 char *call_id; | |
134 char *content; | 139 char *content; |
135 char *body; | 140 char *body; |
136 char *c; | 141 char *c; |
137 | 142 |
138 g_return_if_fail(slpsession != NULL); | 143 g_return_if_fail(slpsession != NULL); |
145 g_free(msnobj_data); | 150 g_free(msnobj_data); |
146 | 151 |
147 if ((c = strchr(msnobj_base64, '=')) != NULL) | 152 if ((c = strchr(msnobj_base64, '=')) != NULL) |
148 *c = '\0'; | 153 *c = '\0'; |
149 | 154 |
150 if (slpsession->session_id == 0) | 155 slpsession->session_id = rand() % 0xFFFFFF00 + 4; |
151 slpsession->session_id = rand() % 0xFFFFFF00; | 156 |
157 branch = g_strdup_printf("%4X%4X-%4X-%4X-%4X-%4X%4X%4X", | |
158 rand() % 0xAAFF + 0x1111, | |
159 rand() % 0xAAFF + 0x1111, | |
160 rand() % 0xAAFF + 0x1111, | |
161 rand() % 0xAAFF + 0x1111, | |
162 rand() % 0xAAFF + 0x1111, | |
163 rand() % 0xAAFF + 0x1111, | |
164 rand() % 0xAAFF + 0x1111, | |
165 rand() % 0xAAFF + 0x1111); | |
166 | |
167 call_id = g_strdup_printf("%4X%4X-%4X-%4X-%4X-%4X%4X%4X", | |
168 rand() % 0xAAFF + 0x1111, | |
169 rand() % 0xAAFF + 0x1111, | |
170 rand() % 0xAAFF + 0x1111, | |
171 rand() % 0xAAFF + 0x1111, | |
172 rand() % 0xAAFF + 0x1111, | |
173 rand() % 0xAAFF + 0x1111, | |
174 rand() % 0xAAFF + 0x1111, | |
175 rand() % 0xAAFF + 0x1111); | |
152 | 176 |
153 content = g_strdup_printf( | 177 content = g_strdup_printf( |
154 "EUF-GUID: {A4268EEC-FEC5-49E5-95C3-F126696BDBF6}\r\n" | 178 "EUF-GUID: {A4268EEC-FEC5-49E5-95C3-F126696BDBF6}\r\n" |
155 "SessionID: %ld\r\n" | 179 "SessionID: %ld\r\n" |
156 "AppID: 1\r\n" | 180 "AppID: 1\r\n" |
162 | 186 |
163 body = g_strdup_printf( | 187 body = g_strdup_printf( |
164 "INVITE MSNMSGR:%s MSNSLP/1.0\r\n" | 188 "INVITE MSNMSGR:%s MSNSLP/1.0\r\n" |
165 "To: <msnmsgr:%s>\r\n" | 189 "To: <msnmsgr:%s>\r\n" |
166 "From: <msnmsgr:%s>\r\n" | 190 "From: <msnmsgr:%s>\r\n" |
167 "Via: MSNSLP/1.0/TLP ;branch={33517CE4-02FC-4428-B6F4-39927229B722}\r\n" | 191 "Via: MSNSLP/1.0/TLP ;branch={%s}\r\n" |
168 "CSeq: 0\r\n" | 192 "CSeq: 0\r\n" |
169 "Call-ID: {9D79AE57-1BD5-444B-B14E-3FC9BB2B5D58}\r\n" | 193 "Call-ID: {%s}\r\n" |
170 "Max-Forwards: 0\r\n" | 194 "Max-Forwards: 0\r\n" |
171 "Content-Type: application/x-msnmsgr-sessionreqbody\r\n" | 195 "Content-Type: application/x-msnmsgr-sessionreqbody\r\n" |
172 "Content-Length: %d\r\n" | 196 "Content-Length: %d\r\n" |
173 "\r\n" | 197 "\r\n" |
174 "%s" | 198 "%s" |
175 "\r\n\r\n", | 199 "\r\n\r\n", |
176 msn_user_get_passport(remote_user), | 200 msn_user_get_passport(remote_user), |
177 msn_user_get_passport(remote_user), | 201 msn_user_get_passport(remote_user), |
178 msn_user_get_passport(local_user), | 202 msn_user_get_passport(local_user), |
203 branch, | |
204 call_id, | |
179 strlen(content) + 5, | 205 strlen(content) + 5, |
180 content); | 206 content); |
181 | 207 |
182 g_free(content); | 208 g_free(content); |
209 g_free(branch); | |
210 g_free(call_id); | |
183 | 211 |
184 gaim_debug_misc("msn", "Message = {%s}\n", body); | 212 gaim_debug_misc("msn", "Message = {%s}\n", body); |
185 | 213 |
186 invite_msg = msn_message_new_msnslp(); | 214 //invite_msg = msn_message_new_msnslp(); |
215 invite_msg = msn_message_new(); | |
187 | 216 |
188 msn_message_set_sender(invite_msg, local_user); | 217 msn_message_set_sender(invite_msg, local_user); |
189 msn_message_set_receiver(invite_msg, remote_user); | 218 msn_message_set_receiver(invite_msg, remote_user); |
190 | 219 |
191 msn_message_set_body(invite_msg, body); | 220 msn_message_set_body(invite_msg, body); |