comparison libpurple/protocols/msn/switchboard.c @ 31095:e30865b62859

Initial support for msnp16, based on patch by Masca. References #8247.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Tue, 01 Dec 2009 22:13:30 +0000
parents dda434352a35
children 88a3135c5a23
comparison
equal deleted inserted replaced
29069:dbd030780f75 31095:e30865b62859
947 { 947 {
948 MsnSwitchBoard *swboard; 948 MsnSwitchBoard *swboard;
949 MsnTransaction *trans; 949 MsnTransaction *trans;
950 MsnCmdProc *cmdproc; 950 MsnCmdProc *cmdproc;
951 PurpleAccount *account; 951 PurpleAccount *account;
952 char *username;
952 953
953 cmdproc = servconn->cmdproc; 954 cmdproc = servconn->cmdproc;
954 g_return_if_fail(cmdproc != NULL); 955 g_return_if_fail(cmdproc != NULL);
955 956
956 account = cmdproc->session->account; 957 account = cmdproc->session->account;
957 swboard = cmdproc->data; 958 swboard = cmdproc->data;
958 g_return_if_fail(swboard != NULL); 959 g_return_if_fail(swboard != NULL);
959 960
961 if (servconn->session->protocol_ver >= 16)
962 username = g_strdup(purple_account_get_username(account));
963 else
964 username = g_strdup_printf("%s;{%s}",
965 purple_account_get_username(account),
966 servconn->session->guid);
967
960 if (msn_switchboard_is_invited(swboard)) 968 if (msn_switchboard_is_invited(swboard))
961 { 969 {
962 swboard->empty = FALSE; 970 swboard->empty = FALSE;
963 971
964 trans = msn_transaction_new(cmdproc, "ANS", "%s %s %s", 972 trans = msn_transaction_new(cmdproc, "ANS", "%s %s %s",
965 purple_account_get_username(account), 973 username,
966 swboard->auth_key, swboard->session_id); 974 swboard->auth_key, swboard->session_id);
967 } 975 }
968 else 976 else
969 { 977 {
970 trans = msn_transaction_new(cmdproc, "USR", "%s %s", 978 trans = msn_transaction_new(cmdproc, "USR", "%s %s",
971 purple_account_get_username(account), 979 username,
972 swboard->auth_key); 980 swboard->auth_key);
973 } 981 }
974 982
975 msn_transaction_set_error_cb(trans, ans_usr_error); 983 msn_transaction_set_error_cb(trans, ans_usr_error);
976 msn_transaction_set_data(trans, swboard); 984 msn_transaction_set_data(trans, swboard);
977 msn_cmdproc_send_trans(cmdproc, trans); 985 msn_cmdproc_send_trans(cmdproc, trans);
986
987 g_free(username);
978 } 988 }
979 989
980 static void 990 static void
981 ans_usr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) 991 ans_usr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
982 { 992 {