| 1438 "persist", MSIM_TYPE_INTEGER, 1, |
1438 "persist", MSIM_TYPE_INTEGER, 1, |
| 1439 "sesskey", MSIM_TYPE_INTEGER, session->sesskey, |
1439 "sesskey", MSIM_TYPE_INTEGER, session->sesskey, |
| 1440 "cmd", MSIM_TYPE_INTEGER, MSIM_CMD_BIT_ACTION | MSIM_CMD_DELETE, |
1440 "cmd", MSIM_TYPE_INTEGER, MSIM_CMD_BIT_ACTION | MSIM_CMD_DELETE, |
| 1441 "dsn", MSIM_TYPE_INTEGER, MD_DELETE_BUDDY_DSN, |
1441 "dsn", MSIM_TYPE_INTEGER, MD_DELETE_BUDDY_DSN, |
| 1442 "lid", MSIM_TYPE_INTEGER, MD_DELETE_BUDDY_LID, |
1442 "lid", MSIM_TYPE_INTEGER, MD_DELETE_BUDDY_LID, |
| 1443 "uid", MSIM_TYPE_INTEGER, 42, /* TODO: put YOUR userid here */ |
1443 "uid", MSIM_TYPE_INTEGER, session->userid, |
| 1444 "rid", MSIM_TYPE_INTEGER, session->next_rid++, |
1444 "rid", MSIM_TYPE_INTEGER, session->next_rid++, |
| 1445 "body", MSIM_TYPE_STRING, g_strdup("ContactID=%d"), |
1445 "body", MSIM_TYPE_STRING, g_strdup("ContactID=%d"), |
| 1446 NULL); |
1446 NULL); |
| 1447 |
1447 |
| 1448 /* TODO: free msg */ |
1448 /* TODO: free msg */ |
| 1607 g_hash_table_insert(session->user_lookup_cb_data, GUINT_TO_POINTER(rid), data); |
1607 g_hash_table_insert(session->user_lookup_cb_data, GUINT_TO_POINTER(rid), data); |
| 1608 |
1608 |
| 1609 return rid; |
1609 return rid; |
| 1610 } |
1610 } |
| 1611 |
1611 |
| 1612 /** Process reply to get our own userid. */ |
|
| 1613 void msim_get_own_uid_cb(MsimSession *session, MsimMessage *userinfo, gpointer data) |
|
| 1614 { |
|
| 1615 /* TODO */ |
|
| 1616 msim_msg_dump("msim_get_own_uid_cb: %s\n", userinfo); |
|
| 1617 } |
|
| 1618 |
|
| 1619 /** Request our own userid. */ |
|
| 1620 void msim_get_own_uid(MsimSession *session) |
|
| 1621 { |
|
| 1622 guint rid; |
|
| 1623 |
|
| 1624 rid = msim_new_reply_callback(session, msim_get_own_uid_cb, NULL); |
|
| 1625 |
|
| 1626 g_return_if_fail(msim_send(session, |
|
| 1627 "persist", MSIM_TYPE_INTEGER, 1, |
|
| 1628 "sesskey", MSIM_TYPE_INTEGER, session->sesskey, |
|
| 1629 "cmd", MSIM_TYPE_INTEGER, 1, |
|
| 1630 "dsn", MSIM_TYPE_INTEGER, MG_OWN_MYSPACE_INFO_DSN, |
|
| 1631 "lid", MSIM_TYPE_INTEGER, MG_OWN_MYSPACE_INFO_LID, |
|
| 1632 "rid", MSIM_TYPE_INTEGER, rid, |
|
| 1633 "body", MSIM_TYPE_STRING, g_strdup(""), |
|
| 1634 NULL)); |
|
| 1635 } |
|
| 1636 |
|
| 1637 |
|
| 1638 /** |
1612 /** |
| 1639 * Callback when connected. Sets up input handlers. |
1613 * Callback when connected. Sets up input handlers. |
| 1640 * |
1614 * |
| 1641 * @param data A PurpleConnection pointer. |
1615 * @param data A PurpleConnection pointer. |
| 1642 * @param source File descriptor. |
1616 * @param source File descriptor. |
| 1715 g_return_if_fail(MSIM_SESSION_VALID(session)); |
1689 g_return_if_fail(MSIM_SESSION_VALID(session)); |
| 1716 |
1690 |
| 1717 session->magic = -1; |
1691 session->magic = -1; |
| 1718 |
1692 |
| 1719 g_free(session->rxbuf); |
1693 g_free(session->rxbuf); |
| 1720 g_free(session->userid); |
|
| 1721 |
1694 |
| 1722 /* TODO: Remove. */ |
1695 /* TODO: Remove. */ |
| 1723 g_hash_table_destroy(session->user_lookup_cb); |
1696 g_hash_table_destroy(session->user_lookup_cb); |
| 1724 g_hash_table_destroy(session->user_lookup_cb_data); |
1697 g_hash_table_destroy(session->user_lookup_cb_data); |
| 1725 g_hash_table_destroy(session->user_lookup_cache); |
1698 g_hash_table_destroy(session->user_lookup_cache); |
| 1846 g_return_if_fail(msim_send(session, |
1819 g_return_if_fail(msim_send(session, |
| 1847 "persist", MSIM_TYPE_INTEGER, 1, |
1820 "persist", MSIM_TYPE_INTEGER, 1, |
| 1848 "sesskey", MSIM_TYPE_INTEGER, session->sesskey, |
1821 "sesskey", MSIM_TYPE_INTEGER, session->sesskey, |
| 1849 "cmd", MSIM_TYPE_INTEGER, 1, |
1822 "cmd", MSIM_TYPE_INTEGER, 1, |
| 1850 "dsn", MSIM_TYPE_INTEGER, dsn, |
1823 "dsn", MSIM_TYPE_INTEGER, dsn, |
| 1851 "uid", MSIM_TYPE_STRING, g_strdup(session->userid), |
1824 "uid", MSIM_TYPE_INTEGER, session->userid, |
| 1852 "lid", MSIM_TYPE_INTEGER, lid, |
1825 "lid", MSIM_TYPE_INTEGER, lid, |
| 1853 "rid", MSIM_TYPE_INTEGER, rid, |
1826 "rid", MSIM_TYPE_INTEGER, rid, |
| 1854 /* TODO: dictionary field type */ |
1827 /* TODO: dictionary field type */ |
| 1855 "body", MSIM_TYPE_STRING, g_strdup_printf("%s=%s", field_name, user), |
1828 "body", MSIM_TYPE_STRING, g_strdup_printf("%s=%s", field_name, user), |
| 1856 NULL)); |
1829 NULL)); |