Mercurial > pidgin
comparison libpurple/protocols/msn/msn.c @ 32672:3828a61c44da
A boring and large patch so I can merge heads.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 23 Dec 2011 08:21:58 +0000 |
parents | 0cc718e10344 |
children |
comparison
equal
deleted
inserted
replaced
32671:0e69949b3e61 | 32672:3828a61c44da |
---|---|
117 MsnMessage *msg; | 117 MsnMessage *msg; |
118 MsnSession *session; | 118 MsnSession *session; |
119 MsnSwitchBoard *swboard; | 119 MsnSwitchBoard *swboard; |
120 | 120 |
121 msg = msn_message_new_nudge(); | 121 msg = msn_message_new_nudge(); |
122 session = gc->proto_data; | 122 session = purple_connection_get_protocol_data(gc); |
123 swboard = msn_session_get_swboard(session, username, MSN_SB_FLAG_IM); | 123 swboard = msn_session_get_swboard(session, username, MSN_SB_FLAG_IM); |
124 | 124 |
125 msn_switchboard_send_msg(swboard, msg, TRUE); | 125 msn_switchboard_send_msg(swboard, msg, TRUE); |
126 msn_message_unref(msg); | 126 msn_message_unref(msg); |
127 | 127 |
324 { | 324 { |
325 MsnCmdProc *cmdproc; | 325 MsnCmdProc *cmdproc; |
326 MsnSession *session; | 326 MsnSession *session; |
327 MsnTransaction *trans; | 327 MsnTransaction *trans; |
328 | 328 |
329 session = gc->proto_data; | 329 session = purple_connection_get_protocol_data(gc); |
330 cmdproc = session->notification->cmdproc; | 330 cmdproc = session->notification->cmdproc; |
331 | 331 |
332 if (entry == NULL || *entry == '\0') | 332 if (entry == NULL || *entry == '\0') |
333 { | 333 { |
334 trans = msn_transaction_new(cmdproc, "PRP", "%s", type); | 334 trans = msn_transaction_new(cmdproc, "PRP", "%s", type); |
382 MsnUser *user; | 382 MsnUser *user; |
383 char *payload = NULL; | 383 char *payload = NULL; |
384 const char *mobile_number = NULL; | 384 const char *mobile_number = NULL; |
385 gsize payload_len; | 385 gsize payload_len; |
386 | 386 |
387 session = gc->proto_data; | 387 session = purple_connection_get_protocol_data(gc); |
388 cmdproc = session->notification->cmdproc; | 388 cmdproc = session->notification->cmdproc; |
389 | 389 |
390 page = msn_page_new(); | 390 page = msn_page_new(); |
391 msn_page_set_body(page, entry); | 391 msn_page_set_body(page, entry); |
392 | 392 |
645 { | 645 { |
646 PurpleConnection *gc; | 646 PurpleConnection *gc; |
647 MsnSession *session; | 647 MsnSession *session; |
648 | 648 |
649 gc = (PurpleConnection *) action->context; | 649 gc = (PurpleConnection *) action->context; |
650 session = gc->proto_data; | 650 session = purple_connection_get_protocol_data(gc); |
651 | 651 |
652 purple_request_input(gc, NULL, _("Set your home phone number."), NULL, | 652 purple_request_input(gc, NULL, _("Set your home phone number."), NULL, |
653 msn_user_get_home_phone(session->user), FALSE, FALSE, NULL, | 653 msn_user_get_home_phone(session->user), FALSE, FALSE, NULL, |
654 _("OK"), G_CALLBACK(msn_set_home_phone_cb), | 654 _("OK"), G_CALLBACK(msn_set_home_phone_cb), |
655 _("Cancel"), NULL, | 655 _("Cancel"), NULL, |
662 { | 662 { |
663 PurpleConnection *gc; | 663 PurpleConnection *gc; |
664 MsnSession *session; | 664 MsnSession *session; |
665 | 665 |
666 gc = (PurpleConnection *) action->context; | 666 gc = (PurpleConnection *) action->context; |
667 session = gc->proto_data; | 667 session = purple_connection_get_protocol_data(gc); |
668 | 668 |
669 purple_request_input(gc, NULL, _("Set your work phone number."), NULL, | 669 purple_request_input(gc, NULL, _("Set your work phone number."), NULL, |
670 msn_user_get_work_phone(session->user), FALSE, FALSE, NULL, | 670 msn_user_get_work_phone(session->user), FALSE, FALSE, NULL, |
671 _("OK"), G_CALLBACK(msn_set_work_phone_cb), | 671 _("OK"), G_CALLBACK(msn_set_work_phone_cb), |
672 _("Cancel"), NULL, | 672 _("Cancel"), NULL, |
679 { | 679 { |
680 PurpleConnection *gc; | 680 PurpleConnection *gc; |
681 MsnSession *session; | 681 MsnSession *session; |
682 | 682 |
683 gc = (PurpleConnection *) action->context; | 683 gc = (PurpleConnection *) action->context; |
684 session = gc->proto_data; | 684 session = purple_connection_get_protocol_data(gc); |
685 | 685 |
686 purple_request_input(gc, NULL, _("Set your mobile phone number."), NULL, | 686 purple_request_input(gc, NULL, _("Set your mobile phone number."), NULL, |
687 msn_user_get_mobile_phone(session->user), FALSE, FALSE, NULL, | 687 msn_user_get_mobile_phone(session->user), FALSE, FALSE, NULL, |
688 _("OK"), G_CALLBACK(msn_set_mobile_phone_cb), | 688 _("OK"), G_CALLBACK(msn_set_mobile_phone_cb), |
689 _("Cancel"), NULL, | 689 _("Cancel"), NULL, |
717 { | 717 { |
718 PurpleConnection *pc = (PurpleConnection *) action->context; | 718 PurpleConnection *pc = (PurpleConnection *) action->context; |
719 MsnSession *session; | 719 MsnSession *session; |
720 char *title; | 720 char *title; |
721 | 721 |
722 session = pc->proto_data; | 722 session = purple_connection_get_protocol_data(pc); |
723 | 723 |
724 title = g_strdup_printf(_("Blocked Text for %s"), session->account->username); | 724 title = g_strdup_printf(_("Blocked Text for %s"), session->account->username); |
725 if (session->blocked_text == NULL) { | 725 if (session->blocked_text == NULL) { |
726 purple_notify_formatted(pc, title, title, NULL, _("No text is blocked for this account."), NULL, NULL); | 726 purple_notify_formatted(pc, title, title, NULL, _("No text is blocked for this account."), NULL, NULL); |
727 } else { | 727 } else { |
741 { | 741 { |
742 PurpleConnection *gc; | 742 PurpleConnection *gc; |
743 MsnSession *session; | 743 MsnSession *session; |
744 | 744 |
745 gc = (PurpleConnection *) action->context; | 745 gc = (PurpleConnection *) action->context; |
746 session = gc->proto_data; | 746 session = purple_connection_get_protocol_data(gc); |
747 | 747 |
748 if (!session->passport_info.email_enabled) { | 748 if (!session->passport_info.email_enabled) { |
749 purple_notify_error(gc, NULL, | 749 purple_notify_error(gc, NULL, |
750 _("This account does not have email enabled."), NULL); | 750 _("This account does not have email enabled."), NULL); |
751 return; | 751 return; |
808 MsnSession *session; | 808 MsnSession *session; |
809 MsnCmdProc *cmdproc; | 809 MsnCmdProc *cmdproc; |
810 MsnTransaction *trans; | 810 MsnTransaction *trans; |
811 | 811 |
812 account = purple_connection_get_account(gc); | 812 account = purple_connection_get_account(gc); |
813 session = gc->proto_data; | 813 session = purple_connection_get_protocol_data(gc); |
814 cmdproc = session->notification->cmdproc; | 814 cmdproc = session->notification->cmdproc; |
815 | 815 |
816 if (account->perm_deny == PURPLE_PRIVACY_ALLOW_ALL || | 816 if (purple_account_get_privacy_type(account) == PURPLE_PRIVACY_ALLOW_ALL || |
817 account->perm_deny == PURPLE_PRIVACY_DENY_USERS) | 817 purple_account_get_privacy_type(account) == PURPLE_PRIVACY_DENY_USERS) |
818 trans = msn_transaction_new(cmdproc, "BLP", "%s", "AL"); | 818 trans = msn_transaction_new(cmdproc, "BLP", "%s", "AL"); |
819 else | 819 else |
820 trans = msn_transaction_new(cmdproc, "BLP", "%s", "BL"); | 820 trans = msn_transaction_new(cmdproc, "BLP", "%s", "BL"); |
821 | 821 |
822 msn_cmdproc_send_trans(cmdproc, trans); | 822 msn_cmdproc_send_trans(cmdproc, trans); |
838 | 838 |
839 buddy = (PurpleBuddy *) node; | 839 buddy = (PurpleBuddy *) node; |
840 account = purple_buddy_get_account(buddy); | 840 account = purple_buddy_get_account(buddy); |
841 gc = purple_account_get_connection(account); | 841 gc = purple_account_get_connection(account); |
842 | 842 |
843 session = gc->proto_data; | 843 session = purple_connection_get_protocol_data(gc); |
844 | 844 |
845 swboard = msn_switchboard_new(session); | 845 swboard = msn_switchboard_new(session); |
846 msn_switchboard_request(swboard); | 846 msn_switchboard_request(swboard); |
847 msn_switchboard_request_add_user(swboard, purple_buddy_get_name(buddy)); | 847 msn_switchboard_request_add_user(swboard, purple_buddy_get_name(buddy)); |
848 | 848 |
867 } | 867 } |
868 | 868 |
869 static void | 869 static void |
870 t_msn_xfer_cancel_send(PurpleXfer *xfer) | 870 t_msn_xfer_cancel_send(PurpleXfer *xfer) |
871 { | 871 { |
872 MsnSlpLink *slplink = xfer->data; | 872 MsnSlpLink *slplink = purple_xfer_get_protocol_data(xfer); |
873 msn_slplink_unref(slplink); | 873 msn_slplink_unref(slplink); |
874 } | 874 } |
875 | 875 |
876 static PurpleXfer* | 876 static PurpleXfer* |
877 msn_new_xfer(PurpleConnection *gc, const char *who) | 877 msn_new_xfer(PurpleConnection *gc, const char *who) |
878 { | 878 { |
879 MsnSession *session; | 879 MsnSession *session; |
880 PurpleXfer *xfer; | 880 PurpleXfer *xfer; |
881 | 881 |
882 session = gc->proto_data; | 882 session = purple_connection_get_protocol_data(gc); |
883 | 883 |
884 xfer = purple_xfer_new(gc->account, PURPLE_XFER_SEND, who); | 884 xfer = purple_xfer_new(purple_connection_get_account(gc), PURPLE_XFER_SEND, who); |
885 | 885 |
886 g_return_val_if_fail(xfer != NULL, NULL); | 886 g_return_val_if_fail(xfer != NULL, NULL); |
887 | 887 |
888 xfer->data = msn_slplink_ref(msn_session_get_slplink(session, who)); | 888 purple_xfer_set_protocol_data(xfer, msn_slplink_ref(msn_session_get_slplink(session, who))); |
889 | 889 |
890 purple_xfer_set_init_fnc(xfer, t_msn_xfer_init); | 890 purple_xfer_set_init_fnc(xfer, t_msn_xfer_init); |
891 purple_xfer_set_cancel_send_fnc(xfer, t_msn_xfer_cancel_send); | 891 purple_xfer_set_cancel_send_fnc(xfer, t_msn_xfer_cancel_send); |
892 | 892 |
893 return xfer; | 893 return xfer; |
916 normal = g_strdup(msn_normalize(account, purple_account_get_username(account))); | 916 normal = g_strdup(msn_normalize(account, purple_account_get_username(account))); |
917 ret = strcmp(normal, msn_normalize(account, who)); | 917 ret = strcmp(normal, msn_normalize(account, who)); |
918 g_free(normal); | 918 g_free(normal); |
919 | 919 |
920 if (ret) { | 920 if (ret) { |
921 MsnSession *session = gc->proto_data; | 921 MsnSession *session = purple_connection_get_protocol_data(gc); |
922 if (session) { | 922 if (session) { |
923 MsnUser *user = msn_userlist_find_user(session->userlist, who); | 923 MsnUser *user = msn_userlist_find_user(session->userlist, who); |
924 if (user) { | 924 if (user) { |
925 /* Include these too: MSN_CAP_MOBILE_ON|MSN_CAP_WEB_WATCH ? */ | 925 /* Include these too: MSN_CAP_MOBILE_ON|MSN_CAP_WEB_WATCH ? */ |
926 if ((user->clientid & MSN_CAP_VIA_WEBIM) || | 926 if ((user->clientid & MSN_CAP_VIA_WEBIM) || |
1099 } | 1099 } |
1100 } | 1100 } |
1101 } | 1101 } |
1102 | 1102 |
1103 if (currentmedia) { | 1103 if (currentmedia) { |
1104 /* TODO: Check whether it's correct to call add_pair_html, | |
1105 or if we should be using add_pair_plaintext */ | |
1106 purple_notify_user_info_add_pair_html(user_info, mediatype, currentmedia); | 1104 purple_notify_user_info_add_pair_html(user_info, mediatype, currentmedia); |
1107 g_free(currentmedia); | 1105 g_free(currentmedia); |
1108 } | 1106 } |
1109 } | 1107 } |
1110 | 1108 |
1127 purple_notify_user_info_add_pair_plaintext(user_info, _("Blocked"), | 1125 purple_notify_user_info_add_pair_plaintext(user_info, _("Blocked"), |
1128 ((user->list_op & (1 << MSN_LIST_BL)) ? _("Yes") : _("No"))); | 1126 ((user->list_op & (1 << MSN_LIST_BL)) ? _("Yes") : _("No"))); |
1129 | 1127 |
1130 phone = msn_user_get_home_phone(user); | 1128 phone = msn_user_get_home_phone(user); |
1131 if (phone != NULL) { | 1129 if (phone != NULL) { |
1132 /* TODO: Check whether it's correct to call add_pair_html, | 1130 purple_notify_user_info_add_pair_plaintext(user_info, _("Home Phone Number"), phone); |
1133 or if we should be using add_pair_plaintext */ | |
1134 purple_notify_user_info_add_pair_html(user_info, _("Home Phone Number"), phone); | |
1135 } | 1131 } |
1136 | 1132 |
1137 phone = msn_user_get_work_phone(user); | 1133 phone = msn_user_get_work_phone(user); |
1138 if (phone != NULL) { | 1134 if (phone != NULL) { |
1139 /* TODO: Check whether it's correct to call add_pair_html, | 1135 purple_notify_user_info_add_pair_plaintext(user_info, _("Work Phone Number"), phone); |
1140 or if we should be using add_pair_plaintext */ | |
1141 purple_notify_user_info_add_pair_html(user_info, _("Work Phone Number"), phone); | |
1142 } | 1136 } |
1143 | 1137 |
1144 phone = msn_user_get_mobile_phone(user); | 1138 phone = msn_user_get_mobile_phone(user); |
1145 if (phone != NULL) { | 1139 if (phone != NULL) { |
1146 /* TODO: Check whether it's correct to call add_pair_html, | 1140 purple_notify_user_info_add_pair_plaintext(user_info, _("Mobile Phone Number"), phone); |
1147 or if we should be using add_pair_plaintext */ | |
1148 purple_notify_user_info_add_pair_html(user_info, _("Mobile Phone Number"), phone); | |
1149 } | 1141 } |
1150 } | 1142 } |
1151 } | 1143 } |
1152 | 1144 |
1153 static GList * | 1145 static GList * |
1222 MsnSession *session; | 1214 MsnSession *session; |
1223 GList *m = NULL; | 1215 GList *m = NULL; |
1224 PurplePluginAction *act; | 1216 PurplePluginAction *act; |
1225 | 1217 |
1226 gc = (PurpleConnection *) context; | 1218 gc = (PurpleConnection *) context; |
1227 session = gc->proto_data; | 1219 session = purple_connection_get_protocol_data(gc); |
1228 | 1220 |
1229 act = purple_plugin_action_new(_("Set Friendly Name..."), | 1221 act = purple_plugin_action_new(_("Set Friendly Name..."), |
1230 msn_show_set_friendly_name); | 1222 msn_show_set_friendly_name); |
1231 m = g_list_append(m, act); | 1223 m = g_list_append(m, act); |
1232 m = g_list_append(m, NULL); | 1224 m = g_list_append(m, NULL); |
1359 host = purple_account_get_string(account, "server", MSN_SERVER); | 1351 host = purple_account_get_string(account, "server", MSN_SERVER); |
1360 port = purple_account_get_int(account, "port", MSN_PORT); | 1352 port = purple_account_get_int(account, "port", MSN_PORT); |
1361 | 1353 |
1362 session = msn_session_new(account); | 1354 session = msn_session_new(account); |
1363 | 1355 |
1364 gc->proto_data = session; | 1356 purple_connection_set_protocol_data(gc, session); |
1365 gc->flags |= PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_FORMATTING_WBFO | PURPLE_CONNECTION_NO_BGCOLOR | | 1357 purple_connection_set_flags(gc, |
1366 PURPLE_CONNECTION_NO_FONTSIZE | PURPLE_CONNECTION_NO_URLDESC | PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY; | 1358 PURPLE_CONNECTION_HTML | PURPLE_CONNECTION_FORMATTING_WBFO | PURPLE_CONNECTION_NO_BGCOLOR | |
1359 PURPLE_CONNECTION_NO_FONTSIZE | PURPLE_CONNECTION_NO_URLDESC | PURPLE_CONNECTION_ALLOW_CUSTOM_SMILEY); | |
1367 | 1360 |
1368 msn_session_set_login_step(session, MSN_LOGIN_STEP_START); | 1361 msn_session_set_login_step(session, MSN_LOGIN_STEP_START); |
1369 | 1362 |
1370 /* Hmm, I don't like this. */ | 1363 /* Hmm, I don't like this. */ |
1371 /* XXX shx: Me neither */ | 1364 /* XXX shx: Me neither */ |
1393 static void | 1386 static void |
1394 msn_close(PurpleConnection *gc) | 1387 msn_close(PurpleConnection *gc) |
1395 { | 1388 { |
1396 MsnSession *session; | 1389 MsnSession *session; |
1397 | 1390 |
1398 session = gc->proto_data; | 1391 session = purple_connection_get_protocol_data(gc); |
1399 | 1392 |
1400 g_return_if_fail(session != NULL); | 1393 g_return_if_fail(session != NULL); |
1401 | 1394 |
1402 msn_session_destroy(session); | 1395 msn_session_destroy(session); |
1403 | 1396 |
1404 gc->proto_data = NULL; | 1397 purple_connection_set_protocol_data(gc, NULL); |
1405 } | 1398 } |
1406 | 1399 |
1407 static gboolean | 1400 static gboolean |
1408 msn_send_me_im(gpointer data) | 1401 msn_send_me_im(gpointer data) |
1409 { | 1402 { |
1459 } | 1452 } |
1460 | 1453 |
1461 static void msn_emoticon_destroy(MsnEmoticon *emoticon) | 1454 static void msn_emoticon_destroy(MsnEmoticon *emoticon) |
1462 { | 1455 { |
1463 if (emoticon->obj) | 1456 if (emoticon->obj) |
1464 msn_object_destroy(emoticon->obj); | 1457 msn_object_destroy(emoticon->obj, FALSE); |
1465 g_free(emoticon->smile); | 1458 g_free(emoticon->smile); |
1466 g_free(emoticon); | 1459 g_free(emoticon); |
1467 } | 1460 } |
1468 | 1461 |
1469 static GSList* msn_msg_grab_emoticons(const char *msg, const char *username) | 1462 static GSList* msn_msg_grab_emoticons(const char *msg, const char *username) |
1532 static int | 1525 static int |
1533 msn_send_im(PurpleConnection *gc, const char *who, const char *message, | 1526 msn_send_im(PurpleConnection *gc, const char *who, const char *message, |
1534 PurpleMessageFlags flags) | 1527 PurpleMessageFlags flags) |
1535 { | 1528 { |
1536 PurpleAccount *account; | 1529 PurpleAccount *account; |
1537 PurpleBuddy *buddy = purple_find_buddy(gc->account, who); | 1530 PurpleBuddy *buddy = purple_find_buddy(purple_connection_get_account(gc), who); |
1538 MsnSession *session; | 1531 MsnSession *session; |
1539 MsnSwitchBoard *swboard; | 1532 MsnSwitchBoard *swboard; |
1540 MsnMessage *msg; | 1533 MsnMessage *msg; |
1541 char *msgformat; | 1534 char *msgformat; |
1542 char *msgtext; | 1535 char *msgtext; |
1545 | 1538 |
1546 purple_debug_info("msn", "send IM {%s} to %s\n", message, who); | 1539 purple_debug_info("msn", "send IM {%s} to %s\n", message, who); |
1547 account = purple_connection_get_account(gc); | 1540 account = purple_connection_get_account(gc); |
1548 username = purple_account_get_username(account); | 1541 username = purple_account_get_username(account); |
1549 | 1542 |
1550 session = gc->proto_data; | 1543 session = purple_connection_get_protocol_data(gc); |
1551 swboard = msn_session_find_swboard(session, who); | 1544 swboard = msn_session_find_swboard(session, who); |
1552 | 1545 |
1553 if (!strncmp("tel:+", who, 5)) { | 1546 if (!strncmp("tel:+", who, 5)) { |
1554 char *text = purple_markup_strip_html(message); | 1547 char *text = purple_markup_strip_html(message); |
1555 send_to_mobile(gc, who, text); | 1548 send_to_mobile(gc, who, text); |
1649 /*send Offline Instant Message,only to MSN Passport User*/ | 1642 /*send Offline Instant Message,only to MSN Passport User*/ |
1650 char *friendname; | 1643 char *friendname; |
1651 | 1644 |
1652 purple_debug_info("msn", "prepare to send offline Message\n"); | 1645 purple_debug_info("msn", "prepare to send offline Message\n"); |
1653 | 1646 |
1654 friendname = msn_encode_mime(account->username); | 1647 friendname = msn_encode_mime(purple_account_get_username(account)); |
1655 msn_oim_prep_send_msg_info(session->oim, | 1648 msn_oim_prep_send_msg_info(session->oim, |
1656 purple_account_get_username(account), | 1649 purple_account_get_username(account), |
1657 friendname, who, msgtext); | 1650 friendname, who, msgtext); |
1658 msn_oim_send_msg(session->oim); | 1651 msn_oim_send_msg(session->oim); |
1659 | 1652 |
1672 MsnSession *session; | 1665 MsnSession *session; |
1673 MsnSwitchBoard *swboard; | 1666 MsnSwitchBoard *swboard; |
1674 MsnMessage *msg; | 1667 MsnMessage *msg; |
1675 | 1668 |
1676 account = purple_connection_get_account(gc); | 1669 account = purple_connection_get_account(gc); |
1677 session = gc->proto_data; | 1670 session = purple_connection_get_protocol_data(gc); |
1678 | 1671 |
1679 /* | 1672 /* |
1680 * TODO: I feel like this should be "if (state != PURPLE_TYPING)" | 1673 * TODO: I feel like this should be "if (state != PURPLE_TYPING)" |
1681 * but this is how it was before, and I don't want to break | 1674 * but this is how it was before, and I don't want to break |
1682 * anything. --KingAnt | 1675 * anything. --KingAnt |
1721 | 1714 |
1722 gc = purple_account_get_connection(account); | 1715 gc = purple_account_get_connection(account); |
1723 | 1716 |
1724 if (gc != NULL) | 1717 if (gc != NULL) |
1725 { | 1718 { |
1726 session = gc->proto_data; | 1719 session = purple_connection_get_protocol_data(gc); |
1727 msn_change_status(session); | 1720 msn_change_status(session); |
1728 } | 1721 } |
1729 } | 1722 } |
1730 | 1723 |
1731 static void | 1724 static void |
1732 msn_set_idle(PurpleConnection *gc, int idle) | 1725 msn_set_idle(PurpleConnection *gc, int idle) |
1733 { | 1726 { |
1734 MsnSession *session; | 1727 MsnSession *session; |
1735 | 1728 |
1736 session = gc->proto_data; | 1729 session = purple_connection_get_protocol_data(gc); |
1737 | 1730 |
1738 msn_change_status(session); | 1731 msn_change_status(session); |
1739 } | 1732 } |
1740 | 1733 |
1741 /* | 1734 /* |
1861 msn_rem_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) | 1854 msn_rem_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) |
1862 { | 1855 { |
1863 MsnSession *session; | 1856 MsnSession *session; |
1864 MsnUserList *userlist; | 1857 MsnUserList *userlist; |
1865 | 1858 |
1866 session = gc->proto_data; | 1859 session = purple_connection_get_protocol_data(gc); |
1867 userlist = session->userlist; | 1860 userlist = session->userlist; |
1868 | 1861 |
1869 if (!session->logged_in) | 1862 if (!session->logged_in) |
1870 return; | 1863 return; |
1871 | 1864 |
1878 { | 1871 { |
1879 MsnSession *session; | 1872 MsnSession *session; |
1880 MsnUserList *userlist; | 1873 MsnUserList *userlist; |
1881 MsnUser *user; | 1874 MsnUser *user; |
1882 | 1875 |
1883 session = gc->proto_data; | 1876 session = purple_connection_get_protocol_data(gc); |
1884 userlist = session->userlist; | 1877 userlist = session->userlist; |
1885 user = msn_userlist_find_user(userlist, who); | 1878 user = msn_userlist_find_user(userlist, who); |
1886 | 1879 |
1887 if (!session->logged_in) | 1880 if (!session->logged_in) |
1888 return; | 1881 return; |
1906 { | 1899 { |
1907 MsnSession *session; | 1900 MsnSession *session; |
1908 MsnUserList *userlist; | 1901 MsnUserList *userlist; |
1909 MsnUser *user; | 1902 MsnUser *user; |
1910 | 1903 |
1911 session = gc->proto_data; | 1904 session = purple_connection_get_protocol_data(gc); |
1912 userlist = session->userlist; | 1905 userlist = session->userlist; |
1913 user = msn_userlist_find_user(userlist, who); | 1906 user = msn_userlist_find_user(userlist, who); |
1914 | 1907 |
1915 if (!session->logged_in) | 1908 if (!session->logged_in) |
1916 return; | 1909 return; |
1933 { | 1926 { |
1934 MsnSession *session; | 1927 MsnSession *session; |
1935 MsnUserList *userlist; | 1928 MsnUserList *userlist; |
1936 MsnUser *user; | 1929 MsnUser *user; |
1937 | 1930 |
1938 session = gc->proto_data; | 1931 session = purple_connection_get_protocol_data(gc); |
1939 userlist = session->userlist; | 1932 userlist = session->userlist; |
1940 | 1933 |
1941 if (!session->logged_in) | 1934 if (!session->logged_in) |
1942 return; | 1935 return; |
1943 | 1936 |
1956 { | 1949 { |
1957 MsnSession *session; | 1950 MsnSession *session; |
1958 MsnUserList *userlist; | 1951 MsnUserList *userlist; |
1959 MsnUser *user; | 1952 MsnUser *user; |
1960 | 1953 |
1961 session = gc->proto_data; | 1954 session = purple_connection_get_protocol_data(gc); |
1962 userlist = session->userlist; | 1955 userlist = session->userlist; |
1963 | 1956 |
1964 if (!session->logged_in) | 1957 if (!session->logged_in) |
1965 return; | 1958 return; |
1966 | 1959 |
1985 const char *who) | 1978 const char *who) |
1986 { | 1979 { |
1987 MsnSession *session; | 1980 MsnSession *session; |
1988 MsnSwitchBoard *swboard; | 1981 MsnSwitchBoard *swboard; |
1989 | 1982 |
1990 session = gc->proto_data; | 1983 session = purple_connection_get_protocol_data(gc); |
1991 | 1984 |
1992 swboard = msn_session_find_swboard_with_id(session, id); | 1985 swboard = msn_session_find_swboard_with_id(session, id); |
1993 | 1986 |
1994 if (swboard == NULL) | 1987 if (swboard == NULL) |
1995 { | 1988 { |
2010 { | 2003 { |
2011 MsnSession *session; | 2004 MsnSession *session; |
2012 MsnSwitchBoard *swboard; | 2005 MsnSwitchBoard *swboard; |
2013 PurpleConversation *conv; | 2006 PurpleConversation *conv; |
2014 | 2007 |
2015 session = gc->proto_data; | 2008 session = purple_connection_get_protocol_data(gc); |
2016 | 2009 |
2017 swboard = msn_session_find_swboard_with_id(session, id); | 2010 swboard = msn_session_find_swboard_with_id(session, id); |
2018 | 2011 |
2019 /* if swboard is NULL we were the only person left anyway */ | 2012 /* if swboard is NULL we were the only person left anyway */ |
2020 if (swboard == NULL) | 2013 if (swboard == NULL) |
2047 MsnEmoticon *smile; | 2040 MsnEmoticon *smile; |
2048 GSList *smileys; | 2041 GSList *smileys; |
2049 GString *emoticons = NULL; | 2042 GString *emoticons = NULL; |
2050 | 2043 |
2051 account = purple_connection_get_account(gc); | 2044 account = purple_connection_get_account(gc); |
2052 session = gc->proto_data; | 2045 session = purple_connection_get_protocol_data(gc); |
2053 username = purple_account_get_username(account); | 2046 username = purple_account_get_username(account); |
2054 swboard = msn_session_find_swboard_with_id(session, id); | 2047 swboard = msn_session_find_swboard_with_id(session, id); |
2055 | 2048 |
2056 if (swboard == NULL) | 2049 if (swboard == NULL) |
2057 return -EINVAL; | 2050 return -EINVAL; |
2113 msn_keepalive(PurpleConnection *gc) | 2106 msn_keepalive(PurpleConnection *gc) |
2114 { | 2107 { |
2115 MsnSession *session; | 2108 MsnSession *session; |
2116 MsnTransaction *trans; | 2109 MsnTransaction *trans; |
2117 | 2110 |
2118 session = gc->proto_data; | 2111 session = purple_connection_get_protocol_data(gc); |
2119 | 2112 |
2120 if (!session->http_method) | 2113 if (!session->http_method) |
2121 { | 2114 { |
2122 MsnCmdProc *cmdproc; | 2115 MsnCmdProc *cmdproc; |
2123 | 2116 |
2131 | 2124 |
2132 static void msn_alias_buddy(PurpleConnection *pc, const char *name, const char *alias) | 2125 static void msn_alias_buddy(PurpleConnection *pc, const char *name, const char *alias) |
2133 { | 2126 { |
2134 MsnSession *session; | 2127 MsnSession *session; |
2135 | 2128 |
2136 session = pc->proto_data; | 2129 session = purple_connection_get_protocol_data(pc); |
2137 | 2130 |
2138 msn_update_contact(session, name, MSN_UPDATE_ALIAS, alias); | 2131 msn_update_contact(session, name, MSN_UPDATE_ALIAS, alias); |
2139 } | 2132 } |
2140 | 2133 |
2141 static void | 2134 static void |
2143 const char *old_group_name, const char *new_group_name) | 2136 const char *old_group_name, const char *new_group_name) |
2144 { | 2137 { |
2145 MsnSession *session; | 2138 MsnSession *session; |
2146 MsnUserList *userlist; | 2139 MsnUserList *userlist; |
2147 | 2140 |
2148 session = gc->proto_data; | 2141 session = purple_connection_get_protocol_data(gc); |
2149 userlist = session->userlist; | 2142 userlist = session->userlist; |
2150 | 2143 |
2151 msn_userlist_move_buddy(userlist, who, old_group_name, new_group_name); | 2144 msn_userlist_move_buddy(userlist, who, old_group_name, new_group_name); |
2152 } | 2145 } |
2153 | 2146 |
2156 PurpleGroup *group, GList *moved_buddies) | 2149 PurpleGroup *group, GList *moved_buddies) |
2157 { | 2150 { |
2158 MsnSession *session; | 2151 MsnSession *session; |
2159 const char *gname; | 2152 const char *gname; |
2160 | 2153 |
2161 session = gc->proto_data; | 2154 session = purple_connection_get_protocol_data(gc); |
2162 | 2155 |
2163 g_return_if_fail(session != NULL); | 2156 g_return_if_fail(session != NULL); |
2164 g_return_if_fail(session->userlist != NULL); | 2157 g_return_if_fail(session->userlist != NULL); |
2165 | 2158 |
2166 gname = purple_group_get_name(group); | 2159 gname = purple_group_get_name(group); |
2180 { | 2173 { |
2181 MsnSession *session; | 2174 MsnSession *session; |
2182 MsnSwitchBoard *swboard; | 2175 MsnSwitchBoard *swboard; |
2183 PurpleConversation *conv; | 2176 PurpleConversation *conv; |
2184 | 2177 |
2185 session = gc->proto_data; | 2178 session = purple_connection_get_protocol_data(gc); |
2186 | 2179 |
2187 swboard = msn_session_find_swboard(session, who); | 2180 swboard = msn_session_find_swboard(session, who); |
2188 | 2181 |
2189 /* | 2182 /* |
2190 * Don't perform an assertion here. If swboard is NULL, then the | 2183 * Don't perform an assertion here. If swboard is NULL, then the |
2216 msn_set_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img) | 2209 msn_set_buddy_icon(PurpleConnection *gc, PurpleStoredImage *img) |
2217 { | 2210 { |
2218 MsnSession *session; | 2211 MsnSession *session; |
2219 MsnUser *user; | 2212 MsnUser *user; |
2220 | 2213 |
2221 session = gc->proto_data; | 2214 session = purple_connection_get_protocol_data(gc); |
2222 user = session->user; | 2215 user = session->user; |
2223 | 2216 |
2224 msn_user_set_buddy_icon(user, img); | 2217 msn_user_set_buddy_icon(user, img); |
2225 | 2218 |
2226 msn_change_status(session); | 2219 msn_change_status(session); |
2230 msn_remove_group(PurpleConnection *gc, PurpleGroup *group) | 2223 msn_remove_group(PurpleConnection *gc, PurpleGroup *group) |
2231 { | 2224 { |
2232 MsnSession *session; | 2225 MsnSession *session; |
2233 const char *gname; | 2226 const char *gname; |
2234 | 2227 |
2235 session = gc->proto_data; | 2228 session = purple_connection_get_protocol_data(gc); |
2236 gname = purple_group_get_name(group); | 2229 gname = purple_group_get_name(group); |
2237 | 2230 |
2238 purple_debug_info("msn", "Remove group %s\n", gname); | 2231 purple_debug_info("msn", "Remove group %s\n", gname); |
2239 /*we can't delete the default group*/ | 2232 /*we can't delete the default group*/ |
2240 if(!strcmp(gname, MSN_INDIVIDUALS_GROUP_NAME)|| | 2233 if(!strcmp(gname, MSN_INDIVIDUALS_GROUP_NAME)|| |
2748 info2_data->photo_url_text = photo_url_text; | 2741 info2_data->photo_url_text = photo_url_text; |
2749 | 2742 |
2750 /* Try to put the photo in there too, if there's one */ | 2743 /* Try to put the photo in there too, if there's one */ |
2751 if (photo_url_text) | 2744 if (photo_url_text) |
2752 { | 2745 { |
2753 url_data = purple_util_fetch_url_len(photo_url_text, FALSE, NULL, FALSE, | 2746 url_data = purple_util_fetch_url(photo_url_text, FALSE, NULL, FALSE, |
2754 MAX_HTTP_BUDDYICON_BYTES, | 2747 MAX_HTTP_BUDDYICON_BYTES, |
2755 msn_got_photo, info2_data); | 2748 msn_got_photo, info2_data); |
2756 session->url_datas = g_slist_prepend(session->url_datas, url_data); | 2749 session->url_datas = g_slist_prepend(session->url_datas, url_data); |
2757 } | 2750 } |
2758 else | 2751 else |
2847 | 2840 |
2848 url = g_strdup_printf("%s%s", PROFILE_URL, name); | 2841 url = g_strdup_printf("%s%s", PROFILE_URL, name); |
2849 | 2842 |
2850 url_data = purple_util_fetch_url(url, FALSE, | 2843 url_data = purple_util_fetch_url(url, FALSE, |
2851 "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", | 2844 "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)", |
2852 TRUE, msn_got_info, data); | 2845 TRUE, -1, msn_got_info, data); |
2853 session->url_datas = g_slist_prepend(session->url_datas, url_data); | 2846 session->url_datas = g_slist_prepend(session->url_datas, url_data); |
2854 | 2847 |
2855 g_free(url); | 2848 g_free(url); |
2856 } | 2849 } |
2857 | 2850 |
2936 } | 2929 } |
2937 | 2930 |
2938 | 2931 |
2939 static PurplePluginProtocolInfo prpl_info = | 2932 static PurplePluginProtocolInfo prpl_info = |
2940 { | 2933 { |
2934 sizeof(PurplePluginProtocolInfo), /* struct_size */ | |
2941 OPT_PROTO_MAIL_CHECK|OPT_PROTO_INVITE_MESSAGE, | 2935 OPT_PROTO_MAIL_CHECK|OPT_PROTO_INVITE_MESSAGE, |
2942 NULL, /* user_splits */ | 2936 NULL, /* user_splits */ |
2943 NULL, /* protocol_options */ | 2937 NULL, /* protocol_options */ |
2944 {"png,gif", 0, 0, 96, 96, 0, PURPLE_ICON_SCALE_SEND}, /* icon_spec */ | 2938 {"png,gif", 0, 0, 96, 96, 0, PURPLE_ICON_SCALE_SEND}, /* icon_spec */ |
2945 msn_list_icon, /* list_icon */ | 2939 msn_list_icon, /* list_icon */ |
2957 msn_send_typing, /* send_typing */ | 2951 msn_send_typing, /* send_typing */ |
2958 msn_get_info, /* get_info */ | 2952 msn_get_info, /* get_info */ |
2959 msn_set_status, /* set_away */ | 2953 msn_set_status, /* set_away */ |
2960 msn_set_idle, /* set_idle */ | 2954 msn_set_idle, /* set_idle */ |
2961 NULL, /* change_passwd */ | 2955 NULL, /* change_passwd */ |
2962 NULL, /* add_buddy */ | 2956 msn_add_buddy, /* add_buddy */ |
2963 NULL, /* add_buddies */ | 2957 NULL, /* add_buddies */ |
2964 msn_rem_buddy, /* remove_buddy */ | 2958 msn_rem_buddy, /* remove_buddy */ |
2965 NULL, /* remove_buddies */ | 2959 NULL, /* remove_buddies */ |
2966 msn_add_permit, /* add_permit */ | 2960 msn_add_permit, /* add_permit */ |
2967 msn_add_deny, /* add_deny */ | 2961 msn_add_deny, /* add_deny */ |
2976 NULL, /* chat_whisper */ | 2970 NULL, /* chat_whisper */ |
2977 msn_chat_send, /* chat_send */ | 2971 msn_chat_send, /* chat_send */ |
2978 msn_keepalive, /* keepalive */ | 2972 msn_keepalive, /* keepalive */ |
2979 NULL, /* register_user */ | 2973 NULL, /* register_user */ |
2980 NULL, /* get_cb_info */ | 2974 NULL, /* get_cb_info */ |
2981 NULL, /* get_cb_away */ | |
2982 msn_alias_buddy, /* alias_buddy */ | 2975 msn_alias_buddy, /* alias_buddy */ |
2983 msn_group_buddy, /* group_buddy */ | 2976 msn_group_buddy, /* group_buddy */ |
2984 msn_rename_group, /* rename_group */ | 2977 msn_rename_group, /* rename_group */ |
2985 NULL, /* buddy_free */ | 2978 NULL, /* buddy_free */ |
2986 msn_convo_closed, /* convo_closed */ | 2979 msn_convo_closed, /* convo_closed */ |
3001 NULL, /* send_raw */ | 2994 NULL, /* send_raw */ |
3002 NULL, /* roomlist_room_serialize */ | 2995 NULL, /* roomlist_room_serialize */ |
3003 NULL, /* unregister_user */ | 2996 NULL, /* unregister_user */ |
3004 msn_send_attention, /* send_attention */ | 2997 msn_send_attention, /* send_attention */ |
3005 msn_attention_types, /* attention_types */ | 2998 msn_attention_types, /* attention_types */ |
3006 sizeof(PurplePluginProtocolInfo), /* struct_size */ | |
3007 msn_get_account_text_table, /* get_account_text_table */ | 2999 msn_get_account_text_table, /* get_account_text_table */ |
3008 NULL, /* initiate_media */ | 3000 NULL, /* initiate_media */ |
3009 NULL, /* get_media_caps */ | 3001 NULL, /* get_media_caps */ |
3010 NULL, /* get_moods */ | 3002 NULL, /* get_moods */ |
3011 msn_set_public_alias, /* set_public_alias */ | 3003 msn_set_public_alias, /* set_public_alias */ |
3012 msn_get_public_alias, /* get_public_alias */ | 3004 msn_get_public_alias /* get_public_alias */ |
3013 msn_add_buddy, /* add_buddy_with_invite */ | |
3014 NULL /* add_buddies_with_invite */ | |
3015 }; | 3005 }; |
3016 | 3006 |
3017 static PurplePluginInfo info = | 3007 static PurplePluginInfo info = |
3018 { | 3008 { |
3019 PURPLE_PLUGIN_MAGIC, | 3009 PURPLE_PLUGIN_MAGIC, |