comparison libpurple/protocols/msn/slpcall.c @ 32755:867104ed576a

Update MSN for 64-bit file transfers. Refs #8477.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 16 Oct 2011 07:01:52 +0000
parents 13b5d6eb099d
children
comparison
equal deleted inserted replaced
32754:e164f7815b52 32755:867104ed576a
510 PurpleAccount *account; 510 PurpleAccount *account;
511 PurpleXfer *xfer; 511 PurpleXfer *xfer;
512 MsnFileContext *file_context; 512 MsnFileContext *file_context;
513 char *buf; 513 char *buf;
514 gsize bin_len; 514 gsize bin_len;
515 guint32 file_size;
516 char *file_name; 515 char *file_name;
517 516
518 account = slpcall->slplink->session->account; 517 account = slpcall->slplink->session->account;
519 518
520 slpcall->end_cb = msn_xfer_end_cb; 519 slpcall->end_cb = msn_xfer_end_cb;
527 526
528 buf = (char *)purple_base64_decode(context, &bin_len); 527 buf = (char *)purple_base64_decode(context, &bin_len);
529 file_context = msn_file_context_from_wire(buf, bin_len); 528 file_context = msn_file_context_from_wire(buf, bin_len);
530 529
531 if (file_context != NULL) { 530 if (file_context != NULL) {
532 file_size = file_context->file_size;
533
534 file_name = g_convert((const gchar *)&file_context->file_name, 531 file_name = g_convert((const gchar *)&file_context->file_name,
535 MAX_FILE_NAME_LEN * 2, 532 MAX_FILE_NAME_LEN * 2,
536 "UTF-8", "UTF-16LE", 533 "UTF-8", "UTF-16LE",
537 NULL, NULL, NULL); 534 NULL, NULL, NULL);
538 535
539 purple_xfer_set_filename(xfer, file_name ? file_name : ""); 536 purple_xfer_set_filename(xfer, file_name ? file_name : "");
540 g_free(file_name); 537 g_free(file_name);
541 purple_xfer_set_size(xfer, file_size); 538 purple_xfer_set_size(xfer, file_context->file_size);
542 purple_xfer_set_init_fnc(xfer, msn_xfer_init); 539 purple_xfer_set_init_fnc(xfer, msn_xfer_init);
543 purple_xfer_set_request_denied_fnc(xfer, msn_xfer_cancel); 540 purple_xfer_set_request_denied_fnc(xfer, msn_xfer_cancel);
544 purple_xfer_set_cancel_recv_fnc(xfer, msn_xfer_cancel); 541 purple_xfer_set_cancel_recv_fnc(xfer, msn_xfer_cancel);
545 purple_xfer_set_read_fnc(xfer, msn_xfer_read); 542 purple_xfer_set_read_fnc(xfer, msn_xfer_read);
546 purple_xfer_set_write_fnc(xfer, msn_xfer_write); 543 purple_xfer_set_write_fnc(xfer, msn_xfer_write);