Mercurial > pidgin
comparison libpurple/protocols/msn/notification.c @ 30657: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 | 23f6f80f45ed |
children | ed838ad00173 |
comparison
equal
deleted
inserted
replaced
28688:dbd030780f75 | 30657:e30865b62859 |
---|---|
159 | 159 |
160 cmdproc = session->notification->cmdproc; | 160 cmdproc = session->notification->cmdproc; |
161 | 161 |
162 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_END); | 162 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_END); |
163 | 163 |
164 msn_cmdproc_send(cmdproc, "USR", "SSO S %s %s", ticket, response); | 164 if (session->protocol_ver >= 16) |
165 msn_cmdproc_send(cmdproc, "USR", "SSO S %s %s %s", ticket, response, session->guid); | |
166 else | |
167 msn_cmdproc_send(cmdproc, "USR", "SSO S %s %s", ticket, response); | |
165 } | 168 } |
166 | 169 |
167 static void | 170 static void |
168 cvr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | 171 cvr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
169 { | 172 { |
1674 purple_debug_misc("msn", "UUX received.\n"); | 1677 purple_debug_misc("msn", "UUX received.\n"); |
1675 cmdproc->last_cmd->payload_cb = uux_cmd_post; | 1678 cmdproc->last_cmd->payload_cb = uux_cmd_post; |
1676 cmd->payload_len = atoi(cmd->params[1]); | 1679 cmd->payload_len = atoi(cmd->params[1]); |
1677 } | 1680 } |
1678 | 1681 |
1682 void | |
1683 msn_notification_send_uux(MsnSession *session, const char *payload) | |
1684 { | |
1685 MsnTransaction *trans; | |
1686 MsnCmdProc *cmdproc; | |
1687 size_t len = strlen(payload); | |
1688 | |
1689 cmdproc = session->notification->cmdproc; | |
1690 purple_debug_misc("msn", "Sending UUX command with payload: %s\n", payload); | |
1691 trans = msn_transaction_new(cmdproc, "UUX", "%" G_GSIZE_FORMAT, len); | |
1692 msn_transaction_set_payload(trans, payload, len); | |
1693 msn_cmdproc_send_trans(cmdproc, trans); | |
1694 } | |
1695 | |
1696 void msn_notification_send_uux_endpointdata(MsnSession *session) | |
1697 { | |
1698 xmlnode *epDataNode; | |
1699 xmlnode *capNode; | |
1700 char *caps; | |
1701 char *payload; | |
1702 int length; | |
1703 | |
1704 epDataNode = xmlnode_new("EndpointData"); | |
1705 | |
1706 capNode = xmlnode_new_child(epDataNode, "Capabilities"); | |
1707 caps = g_strdup_printf("%d:%02d", MSN_CLIENT_ID_CAPABILITIES, MSN_CLIENT_ID_EXT_CAPS); | |
1708 xmlnode_insert_data(capNode, caps, -1); | |
1709 g_free(caps); | |
1710 | |
1711 payload = xmlnode_to_str(epDataNode, &length); | |
1712 | |
1713 msn_notification_send_uux(session, payload); | |
1714 | |
1715 xmlnode_free(epDataNode); | |
1716 g_free(payload); | |
1717 } | |
1718 | |
1719 void msn_notification_send_uux_private_endpointdata(MsnSession *session) | |
1720 { | |
1721 xmlnode *private; | |
1722 xmlnode *epname; | |
1723 xmlnode *idle; | |
1724 xmlnode *client_type; | |
1725 xmlnode *state; | |
1726 char *payload; | |
1727 int length; | |
1728 | |
1729 private = xmlnode_new("PrivateEndPointData"); | |
1730 | |
1731 /* TODO: "Pidgin" is a temp EndPointName.. we must use hostid or some.*/ | |
1732 epname = xmlnode_new_child(private, "EpName"); | |
1733 xmlnode_insert_data(epname, "Pidgin", -1); | |
1734 | |
1735 idle = xmlnode_new_child(private, "Idle"); | |
1736 xmlnode_insert_data(idle, "false", -1); | |
1737 | |
1738 /* TODO: support different client types */ | |
1739 /* ClientType info (from amsn guys): | |
1740 0: None | |
1741 1: Computer | |
1742 2: Website | |
1743 3: Mobile / none | |
1744 4: Xbox / phone /mobile | |
1745 9: MsnGroup | |
1746 32: Email member, currently Yahoo! | |
1747 */ | |
1748 client_type = xmlnode_new_child(private, "ClientType"); | |
1749 xmlnode_insert_data(client_type, "1", -1); | |
1750 | |
1751 state = xmlnode_new_child(private, "State"); | |
1752 xmlnode_insert_data(state, msn_state_get_text(msn_state_from_account(session->account)), -1); | |
1753 | |
1754 payload = xmlnode_to_str(private, &length); | |
1755 | |
1756 msn_notification_send_uux(session, payload); | |
1757 | |
1758 xmlnode_free(private); | |
1759 g_free(payload); | |
1760 } | |
1761 | |
1679 /************************************************************************** | 1762 /************************************************************************** |
1680 * Message Types | 1763 * Message Types |
1681 **************************************************************************/ | 1764 **************************************************************************/ |
1682 | 1765 |
1683 static void | 1766 static void |