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,