comparison src/protocols/msn/msnslp.c @ 9158:c30d81b4dd22

[gaim-migrate @ 9942] Patch from Felipe Contreras to sync our MSN prpl with what's in his tree. He says this may fix a couple bugs, but the important thing is the restructuring of how MsnMessages work. Lots of style changes and other stuff as well. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 01 Jun 2004 06:42:20 +0000
parents f32ee2e97b37
children ab6636c5a136
comparison
equal deleted inserted replaced
9157:bd1ea0a717d7 9158:c30d81b4dd22
97 97
98 gaim_debug_misc("msn", "Message = {%s}\n", body); 98 gaim_debug_misc("msn", "Message = {%s}\n", body);
99 99
100 invite_msg = msn_message_new_msnslp(); 100 invite_msg = msn_message_new_msnslp();
101 101
102 msn_message_set_body(invite_msg, body); 102 msn_message_set_bin_data(invite_msg, body, strlen(body));
103 103
104 g_free(body); 104 g_free(body);
105 105
106 msn_slp_session_send_msg(slpsession, invite_msg); 106 msn_slp_session_send_msg(slpsession, invite_msg);
107 } 107 }
164 g_return_val_if_fail(!strcmp(msn_message_get_content_type(msg), 164 g_return_val_if_fail(!strcmp(msn_message_get_content_type(msg),
165 "application/x-msnmsgrp2p"), TRUE); 165 "application/x-msnmsgrp2p"), TRUE);
166 166
167 account = slpsession->swboard->servconn->session->account; 167 account = slpsession->swboard->servconn->session->account;
168 168
169 body = msn_message_get_body(msg); 169 body = msn_message_get_bin_data(msg, NULL);
170 170
171 gaim_debug_misc("msn", "MSNSLP Message: {%s}\n", body); 171 gaim_debug_misc("msn", "MSNSLP Message: {%s}\n", body);
172 172
173 if (*body == '\0') 173 if (*body == '\0')
174 { 174 {
327 slpsession->receiver = remote_user; 327 slpsession->receiver = remote_user;
328 slpsession->sender = session->user; 328 slpsession->sender = session->user;
329 329
330 new_msg = msn_message_new_msnslp(); 330 new_msg = msn_message_new_msnslp();
331 msn_message_set_bin_data(new_msg, nil_body, 4); 331 msn_message_set_bin_data(new_msg, nil_body, 4);
332 new_msg->msnslp_footer.app_id = 1; 332 new_msg->msnslp_footer.value = 1;
333 333
334 msn_slp_session_send_msg(slpsession, new_msg); 334 msn_slp_session_send_msg(slpsession, new_msg);
335 335
336 slpsession->send_fp = 336 slpsession->send_fp =
337 fopen(gaim_account_get_buddy_icon(account), "rb"); 337 fopen(gaim_account_get_buddy_icon(account), "rb");
360 (slpsession->orig_len - slpsession->offset > 1202 360 (slpsession->orig_len - slpsession->offset > 1202
361 ? 1202 : slpsession->orig_len - slpsession->offset); 361 ? 1202 : slpsession->orig_len - slpsession->offset);
362 362
363 if (slpsession->offset > 0) 363 if (slpsession->offset > 0)
364 { 364 {
365 if (msg->bin_content) 365 msn_message_set_bin_data(msg,
366 { 366 slpsession->orig_body + slpsession->offset,
367 msn_message_set_bin_data(msg, 367 msg->msnslp_header.length);
368 slpsession->orig_body + slpsession->offset, 368 }
369 msg->msnslp_header.length); 369
370 } 370 msg->msnslp_header.offset = slpsession->offset;
371 else
372 {
373 msn_message_set_body(msg,
374 slpsession->orig_body + slpsession->offset);
375 }
376 }
377
378 msg->msnslp_header.offset_1 = slpsession->offset;
379 371
380 msn_switchboard_send_msg(slpsession->swboard, msg); 372 msn_switchboard_send_msg(slpsession->swboard, msg);
381 373
382 if (slpsession->offset + msg->msnslp_header.length == slpsession->orig_len) 374 if (slpsession->offset + msg->msnslp_header.length == slpsession->orig_len)
383 { 375 {
395 } 387 }
396 388
397 void 389 void
398 msn_slp_session_send_msg(MsnSlpSession *slpsession, MsnMessage *msg) 390 msn_slp_session_send_msg(MsnSlpSession *slpsession, MsnMessage *msg)
399 { 391 {
392 const void *temp;
393
400 g_return_if_fail(slpsession != NULL); 394 g_return_if_fail(slpsession != NULL);
401 g_return_if_fail(msg != NULL); 395 g_return_if_fail(msg != NULL);
402 g_return_if_fail(msg->msnslp_message); 396 g_return_if_fail(msg->msnslp_message);
403 g_return_if_fail(slpsession->outgoing_msg == NULL); 397 g_return_if_fail(slpsession->outgoing_msg == NULL);
404 398
413 } 407 }
414 else if (slpsession->offset == 0) 408 else if (slpsession->offset == 0)
415 slpsession->prev_msg_id = ++slpsession->base_id; 409 slpsession->prev_msg_id = ++slpsession->base_id;
416 410
417 msg->msnslp_header.id = slpsession->prev_msg_id; 411 msg->msnslp_header.id = slpsession->prev_msg_id;
418 /*msg->msnslp_header.ack_session_id = rand() % 0xFFFFFF00;*/ 412 /*msg->msnslp_header.ack_id = rand() % 0xFFFFFF00;*/
419 msg->msnslp_header.ack_session_id = 0x1407C7DE; 413 msg->msnslp_header.ack_id = 0x1407C7DE;
420 414
421 msn_message_set_charset(msg, NULL); 415 msn_message_set_charset(msg, NULL);
422 416
423 if (msg->msnslp_header.session_id != 0) 417 if (msg->msnslp_header.session_id != 0)
424 msg->msnslp_footer.app_id = 1; 418 msg->msnslp_footer.value = 1;
425 419
426 if (msg->bin_content) 420 temp = msn_message_get_bin_data(msg, &slpsession->orig_len);
427 { 421
428 const void *temp; 422 slpsession->orig_body = g_memdup(temp, slpsession->orig_len);
429 423
430 temp = msn_message_get_bin_data(msg, &slpsession->orig_len); 424 msg->msnslp_header.total_size = slpsession->orig_len;
431
432 slpsession->orig_body = g_memdup(temp, slpsession->orig_len);
433 }
434 else
435 {
436 slpsession->orig_body = g_strdup(msn_message_get_body(msg));
437 slpsession->orig_len = strlen(slpsession->orig_body);
438 }
439
440 msg->msnslp_header.total_size_1 = slpsession->orig_len;
441 msg->msnslp_header.length = slpsession->orig_len; 425 msg->msnslp_header.length = slpsession->orig_len;
442 426
443 send_msg_part(slpsession, msg); 427 send_msg_part(slpsession, msg);
444 } 428 }
445 429