Mercurial > pidgin.yaz
diff libpurple/protocols/jabber/jabber.c @ 21603:a4b6854737d5
Implement more of XEP-0065 to support sending files through a proxy. To avoid adding strings this close to a release, it only supports using a proxy that is discovered from the server, but we'll include an account option to manually specify a ft proxy in the next release. Lots of this is based on a patch from galt - Fixes #3730, #116, #1768
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Wed, 21 Nov 2007 05:22:39 +0000 |
parents | 68b036c452f3 |
children | d20a1c190c2f 98604b4bfa3b |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Wed Nov 21 02:53:27 2007 +0000 +++ b/libpurple/protocols/jabber/jabber.c Wed Nov 21 05:22:39 2007 +0000 @@ -1234,20 +1234,31 @@ g_hash_table_destroy(js->buddies); if(js->chats) g_hash_table_destroy(js->chats); + while(js->chat_servers) { g_free(js->chat_servers->data); js->chat_servers = g_list_delete_link(js->chat_servers, js->chat_servers); } + while(js->user_directories) { g_free(js->user_directories->data); js->user_directories = g_list_delete_link(js->user_directories, js->user_directories); } - if(js->stream_id) - g_free(js->stream_id); + + while(js->bs_proxies) { + JabberBytestreamsStreamhost *sh = js->bs_proxies->data; + g_free(sh->jid); + g_free(sh->host); + g_free(sh->zeroconf); + g_free(sh); + js->bs_proxies = g_list_delete_link(js->bs_proxies, js->bs_proxies); + } + + g_free(js->stream_id); if(js->user) jabber_id_free(js->user); - if(js->avatar_hash) - g_free(js->avatar_hash); + g_free(js->avatar_hash); + purple_circ_buffer_destroy(js->write_buffer); if(js->writeh) purple_input_remove(js->writeh); @@ -1256,11 +1267,9 @@ sasl_dispose(&js->sasl); if(js->sasl_mechs) g_string_free(js->sasl_mechs, TRUE); - if(js->sasl_cb) - g_free(js->sasl_cb); + g_free(js->sasl_cb); #endif - if(js->serverFQDN) - g_free(js->serverFQDN); + g_free(js->serverFQDN); while(js->commands) { JabberAdHocCommands *cmd = js->commands->data; g_free(cmd->jid); @@ -1272,21 +1281,14 @@ g_free(js->server_name); g_free(js->gmail_last_time); g_free(js->gmail_last_tid); - if(js->old_msg) - g_free(js->old_msg); - if(js->old_avatarhash) - g_free(js->old_avatarhash); - if(js->old_artist) - g_free(js->old_artist); - if(js->old_title) - g_free(js->old_title); - if(js->old_source) - g_free(js->old_source); - if(js->old_uri) - g_free(js->old_uri); - if(js->old_track) - g_free(js->old_track); - + g_free(js->old_msg); + g_free(js->old_avatarhash); + g_free(js->old_artist); + g_free(js->old_title); + g_free(js->old_source); + g_free(js->old_uri); + g_free(js->old_track); + g_free(js); gc->proto_data = NULL;