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 { |
