Mercurial > pidgin.yaz
diff libpurple/protocols/msn/msn.c @ 22518:6aa076a2ea6f
Another patch from Maiku that improves the way we send mobile messages, this
probably needs another patch before it's useful.
References #5232
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Fri, 21 Mar 2008 04:45:03 +0000 |
parents | 616a76954a97 |
children | 05cb3f04c01e 0be4c1f0fa55 b30f54a72031 a8a26b4d8458 aceb6c9734a4 |
line wrap: on
line diff
--- a/libpurple/protocols/msn/msn.c Fri Mar 21 03:17:36 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Fri Mar 21 04:45:03 2008 +0000 @@ -236,7 +236,9 @@ MsnSession *session; MsnCmdProc *cmdproc; MsnPage *page; - char *payload; + MsnUser *user; + char *payload = NULL; + const char *mobile_number = NULL; size_t payload_len; session = gc->proto_data; @@ -247,7 +249,19 @@ payload = msn_page_gen_payload(page, &payload_len); - trans = msn_transaction_new(cmdproc, "PGD", "%s 1 %d", who, payload_len); + if ((user = msn_userlist_find_user(session->userlist, who)) && + (mobile_number = msn_user_get_mobile_phone(user)) && + mobile_number[0] == '+') { + /* if msn_user_get_mobile_phone() has a + in front, it's a number + that from the buddy's contact card */ + trans = msn_transaction_new(cmdproc, "PGD", "tel:%s 1 %d", + mobile_number, payload_len); + } else { + /* otherwise we send to whatever phone number the buddy registered + with msn */ + trans = msn_transaction_new(cmdproc, "PGD", "%s 1 %d", who, + payload_len); + } msn_transaction_set_payload(trans, payload, payload_len); g_free(payload);