Mercurial > pidgin
comparison libpurple/protocols/msn/msg.c @ 32819:2c6510167895 default tip
propagate from branch 'im.pidgin.pidgin.2.x.y' (head 3315c5dfbd0ad16511bdcf865e5b07c02d07df24)
to branch 'im.pidgin.pidgin' (head cbd1eda6bcbf0565ae7766396bb8f6f419cb6a9a)
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sat, 02 Jun 2012 02:30:49 +0000 |
parents | fa666e7f747e |
children |
comparison
equal
deleted
inserted
replaced
32818:01ff09d4a463 | 32819:2c6510167895 |
---|---|
411 | 411 |
412 /* There is no need to waste memory on data we cannot send anyway */ | 412 /* There is no need to waste memory on data we cannot send anyway */ |
413 if (len > 1664) | 413 if (len > 1664) |
414 len = 1664; | 414 len = 1664; |
415 | 415 |
416 if (msg->body != NULL) | 416 g_free(msg->body); |
417 g_free(msg->body); | |
418 | 417 |
419 if (data != NULL && len > 0) | 418 if (data != NULL && len > 0) |
420 { | 419 { |
421 msg->body = g_malloc(len + 1); | 420 msg->body = g_malloc(len + 1); |
422 memcpy(msg->body, data, len); | 421 memcpy(msg->body, data, len); |
659 char *body_final; | 658 char *body_final; |
660 size_t body_len; | 659 size_t body_len; |
661 const char *passport; | 660 const char *passport; |
662 const char *value; | 661 const char *value; |
663 | 662 |
664 gc = cmdproc->session->account->gc; | 663 gc = purple_account_get_connection(cmdproc->session->account); |
665 | 664 |
666 body = msn_message_get_bin_data(msg, &body_len); | 665 body = msn_message_get_bin_data(msg, &body_len); |
667 body_enc = g_markup_escape_text(body, body_len); | 666 body_enc = g_markup_escape_text(body, body_len); |
668 | 667 |
669 passport = msg->remote_user; | 668 passport = msg->remote_user; |
720 { | 719 { |
721 swboard->conv = purple_find_chat(gc, swboard->chat_id); | 720 swboard->conv = purple_find_chat(gc, swboard->chat_id); |
722 swboard->flag |= MSN_SB_FLAG_IM; | 721 swboard->flag |= MSN_SB_FLAG_IM; |
723 } | 722 } |
724 } | 723 } |
725 else if (!g_str_equal(passport, purple_account_get_username(gc->account))) | 724 else if (!g_str_equal(passport, purple_account_get_username(purple_connection_get_account(gc)))) |
726 { | 725 { |
727 /* Don't im ourselves ... */ | 726 /* Don't im ourselves ... */ |
728 serv_got_im(gc, passport, body_final, 0, time(NULL)); | 727 serv_got_im(gc, passport, body_final, 0, time(NULL)); |
729 if (swboard->conv == NULL) | 728 if (swboard->conv == NULL) |
730 { | 729 { |
745 msn_control_msg(MsnCmdProc *cmdproc, MsnMessage *msg) | 744 msn_control_msg(MsnCmdProc *cmdproc, MsnMessage *msg) |
746 { | 745 { |
747 PurpleConnection *gc; | 746 PurpleConnection *gc; |
748 char *passport; | 747 char *passport; |
749 | 748 |
750 gc = cmdproc->session->account->gc; | 749 gc = purple_account_get_connection(cmdproc->session->account); |
751 passport = msg->remote_user; | 750 passport = msg->remote_user; |
752 | 751 |
753 if (msn_message_get_header_value(msg, "TypingUser") == NULL) | 752 if (msn_message_get_header_value(msg, "TypingUser") == NULL) |
754 return; | 753 return; |
755 | 754 |
794 else | 793 else |
795 chat = FALSE; | 794 chat = FALSE; |
796 | 795 |
797 if (swboard->conv == NULL) { | 796 if (swboard->conv == NULL) { |
798 if (chat) | 797 if (chat) |
799 swboard->conv = purple_find_chat(account->gc, swboard->chat_id); | 798 swboard->conv = purple_find_chat(purple_account_get_connection(account), swboard->chat_id); |
800 else { | 799 else { |
801 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, | 800 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, |
802 who, account); | 801 who, account); |
803 if (swboard->conv == NULL) | 802 if (swboard->conv == NULL) |
804 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); | 803 swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, who); |
1002 | 1001 |
1003 if (purple_conv_custom_smiley_add(conv, smile, "sha1", sha1, TRUE)) { | 1002 if (purple_conv_custom_smiley_add(conv, smile, "sha1", sha1, TRUE)) { |
1004 msn_slplink_request_object(slplink, smile, got_emoticon, NULL, obj); | 1003 msn_slplink_request_object(slplink, smile, got_emoticon, NULL, obj); |
1005 } | 1004 } |
1006 | 1005 |
1007 msn_object_destroy(obj); | 1006 msn_object_destroy(obj, FALSE); |
1008 obj = NULL; | 1007 obj = NULL; |
1009 who = NULL; | 1008 who = NULL; |
1010 sha1 = NULL; | 1009 sha1 = NULL; |
1011 } | 1010 } |
1012 g_strfreev(tokens); | 1011 g_strfreev(tokens); |
1023 | 1022 |
1024 if (!strcmp(id, "1")) { | 1023 if (!strcmp(id, "1")) { |
1025 /* Nudge */ | 1024 /* Nudge */ |
1026 PurpleAccount *account; | 1025 PurpleAccount *account; |
1027 const char *user; | 1026 const char *user; |
1027 PurpleConnection *gc; | |
1028 | 1028 |
1029 account = cmdproc->session->account; | 1029 account = cmdproc->session->account; |
1030 user = msg->remote_user; | 1030 user = msg->remote_user; |
1031 gc = purple_account_get_connection(account); | |
1031 | 1032 |
1032 if (cmdproc->servconn->type == MSN_SERVCONN_SB) { | 1033 if (cmdproc->servconn->type == MSN_SERVCONN_SB) { |
1033 MsnSwitchBoard *swboard = cmdproc->data; | 1034 MsnSwitchBoard *swboard = cmdproc->data; |
1034 if (swboard->current_users > 1 || | 1035 if (swboard->current_users > 1 || |
1035 ((swboard->conv != NULL) && | 1036 ((swboard->conv != NULL) && |
1036 purple_conversation_get_type(swboard->conv) == PURPLE_CONV_TYPE_CHAT)) | 1037 purple_conversation_get_type(swboard->conv) == PURPLE_CONV_TYPE_CHAT)) |
1037 purple_prpl_got_attention_in_chat(account->gc, swboard->chat_id, user, MSN_NUDGE); | 1038 purple_prpl_got_attention_in_chat(gc, swboard->chat_id, user, MSN_NUDGE); |
1038 | 1039 |
1039 else | 1040 else |
1040 purple_prpl_got_attention(account->gc, user, MSN_NUDGE); | 1041 purple_prpl_got_attention(gc, user, MSN_NUDGE); |
1041 } else { | 1042 } else { |
1042 purple_prpl_got_attention(account->gc, user, MSN_NUDGE); | 1043 purple_prpl_got_attention(gc, user, MSN_NUDGE); |
1043 } | 1044 } |
1044 | 1045 |
1045 } else if (!strcmp(id, "2")) { | 1046 } else if (!strcmp(id, "2")) { |
1046 /* Wink */ | 1047 /* Wink */ |
1047 MsnSession *session; | 1048 MsnSession *session; |
1057 who = msn_object_get_creator(obj); | 1058 who = msn_object_get_creator(obj); |
1058 | 1059 |
1059 slplink = msn_session_get_slplink(session, who); | 1060 slplink = msn_session_get_slplink(session, who); |
1060 msn_slplink_request_object(slplink, data, got_wink_cb, NULL, obj); | 1061 msn_slplink_request_object(slplink, data, got_wink_cb, NULL, obj); |
1061 | 1062 |
1062 msn_object_destroy(obj); | 1063 msn_object_destroy(obj, FALSE); |
1063 | 1064 |
1064 | 1065 |
1065 } else if (!strcmp(id, "3")) { | 1066 } else if (!strcmp(id, "3")) { |
1066 /* Voiceclip */ | 1067 /* Voiceclip */ |
1067 MsnSession *session; | 1068 MsnSession *session; |
1077 who = msn_object_get_creator(obj); | 1078 who = msn_object_get_creator(obj); |
1078 | 1079 |
1079 slplink = msn_session_get_slplink(session, who); | 1080 slplink = msn_session_get_slplink(session, who); |
1080 msn_slplink_request_object(slplink, data, got_voiceclip_cb, NULL, obj); | 1081 msn_slplink_request_object(slplink, data, got_voiceclip_cb, NULL, obj); |
1081 | 1082 |
1082 msn_object_destroy(obj); | 1083 msn_object_destroy(obj, FALSE); |
1083 | 1084 |
1084 } else if (!strcmp(id, "4")) { | 1085 } else if (!strcmp(id, "4")) { |
1085 /* Action */ | 1086 /* Action */ |
1086 | 1087 |
1087 } else { | 1088 } else { |