Mercurial > pidgin.yaz
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 { |