Mercurial > pidgin
changeset 25031:3f719eaa7fd1
* IPC work
* removed g_free which may've resulted in a bug
author | Tobias Markmann <tfar@soc.pidgin.im> |
---|---|
date | Tue, 08 Jul 2008 15:05:45 +0000 |
parents | 61f37abc8a70 |
children | 7f6558c7a0a3 |
files | libpurple/protocols/jabber/caps.c libpurple/protocols/jabber/jabber.c |
diffstat | 2 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/caps.c Mon Jul 07 18:28:05 2008 +0000 +++ b/libpurple/protocols/jabber/caps.c Tue Jul 08 15:05:45 2008 +0000 @@ -227,11 +227,12 @@ static void jabber_caps_store(void) { char *str; + int length = 0; xmlnode *root = xmlnode_new("capabilities"); g_hash_table_foreach(capstable, jabber_caps_store_client, root); - str = xmlnode_to_formatted_str(root, NULL); + str = xmlnode_to_formatted_str(root, &length); xmlnode_free(root); - purple_util_write_data_to_file(JABBER_CAPS_FILENAME, str, -1); + purple_util_write_data_to_file(JABBER_CAPS_FILENAME, str, length); g_free(str); } @@ -535,7 +536,6 @@ client = g_hash_table_lookup(capstable, key); g_hash_table_replace(jabber_contact_info, g_strdup(who), key); - g_free(key); if(!client) { JabberIq *iq = jabber_iq_new_query(js,JABBER_IQ_GET,"http://jabber.org/protocol/disco#info");
--- a/libpurple/protocols/jabber/jabber.c Mon Jul 07 18:28:05 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Tue Jul 08 15:05:45 2008 +0000 @@ -2477,8 +2477,9 @@ jabber_ipc_add_feature(gchar *feature) { if (feature == 0) return; + jabber_add_feature(feature, 0); - jabber_add_feature(feature, 0); + // send presence with new caps info for all connected accounts } void @@ -2516,4 +2517,8 @@ purple_value_new(PURPLE_TYPE_BOOLEAN), 2, purple_value_new(PURPLE_TYPE_STRING), purple_value_new(PURPLE_TYPE_STRING)); -} \ No newline at end of file + purple_plugin_ipc_register(plugin, "add_feature", PURPLE_CALLBACK(jabber_ipc_add_feature), + purple_marshal_VOID__POINTER, + NULL, 1, + purple_value_new(PURPLE_TYPE_STRING)); +}