comparison 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
comparison
equal deleted inserted replaced
21602:53fee49ce1c5 21603:a4b6854737d5
1232 g_hash_table_destroy(js->disco_callbacks); 1232 g_hash_table_destroy(js->disco_callbacks);
1233 if(js->buddies) 1233 if(js->buddies)
1234 g_hash_table_destroy(js->buddies); 1234 g_hash_table_destroy(js->buddies);
1235 if(js->chats) 1235 if(js->chats)
1236 g_hash_table_destroy(js->chats); 1236 g_hash_table_destroy(js->chats);
1237
1237 while(js->chat_servers) { 1238 while(js->chat_servers) {
1238 g_free(js->chat_servers->data); 1239 g_free(js->chat_servers->data);
1239 js->chat_servers = g_list_delete_link(js->chat_servers, js->chat_servers); 1240 js->chat_servers = g_list_delete_link(js->chat_servers, js->chat_servers);
1240 } 1241 }
1242
1241 while(js->user_directories) { 1243 while(js->user_directories) {
1242 g_free(js->user_directories->data); 1244 g_free(js->user_directories->data);
1243 js->user_directories = g_list_delete_link(js->user_directories, js->user_directories); 1245 js->user_directories = g_list_delete_link(js->user_directories, js->user_directories);
1244 } 1246 }
1245 if(js->stream_id) 1247
1246 g_free(js->stream_id); 1248 while(js->bs_proxies) {
1249 JabberBytestreamsStreamhost *sh = js->bs_proxies->data;
1250 g_free(sh->jid);
1251 g_free(sh->host);
1252 g_free(sh->zeroconf);
1253 g_free(sh);
1254 js->bs_proxies = g_list_delete_link(js->bs_proxies, js->bs_proxies);
1255 }
1256
1257 g_free(js->stream_id);
1247 if(js->user) 1258 if(js->user)
1248 jabber_id_free(js->user); 1259 jabber_id_free(js->user);
1249 if(js->avatar_hash) 1260 g_free(js->avatar_hash);
1250 g_free(js->avatar_hash); 1261
1251 purple_circ_buffer_destroy(js->write_buffer); 1262 purple_circ_buffer_destroy(js->write_buffer);
1252 if(js->writeh) 1263 if(js->writeh)
1253 purple_input_remove(js->writeh); 1264 purple_input_remove(js->writeh);
1254 #ifdef HAVE_CYRUS_SASL 1265 #ifdef HAVE_CYRUS_SASL
1255 if(js->sasl) 1266 if(js->sasl)
1256 sasl_dispose(&js->sasl); 1267 sasl_dispose(&js->sasl);
1257 if(js->sasl_mechs) 1268 if(js->sasl_mechs)
1258 g_string_free(js->sasl_mechs, TRUE); 1269 g_string_free(js->sasl_mechs, TRUE);
1259 if(js->sasl_cb) 1270 g_free(js->sasl_cb);
1260 g_free(js->sasl_cb);
1261 #endif 1271 #endif
1262 if(js->serverFQDN) 1272 g_free(js->serverFQDN);
1263 g_free(js->serverFQDN);
1264 while(js->commands) { 1273 while(js->commands) {
1265 JabberAdHocCommands *cmd = js->commands->data; 1274 JabberAdHocCommands *cmd = js->commands->data;
1266 g_free(cmd->jid); 1275 g_free(cmd->jid);
1267 g_free(cmd->node); 1276 g_free(cmd->node);
1268 g_free(cmd->name); 1277 g_free(cmd->name);
1270 js->commands = g_list_delete_link(js->commands, js->commands); 1279 js->commands = g_list_delete_link(js->commands, js->commands);
1271 } 1280 }
1272 g_free(js->server_name); 1281 g_free(js->server_name);
1273 g_free(js->gmail_last_time); 1282 g_free(js->gmail_last_time);
1274 g_free(js->gmail_last_tid); 1283 g_free(js->gmail_last_tid);
1275 if(js->old_msg) 1284 g_free(js->old_msg);
1276 g_free(js->old_msg); 1285 g_free(js->old_avatarhash);
1277 if(js->old_avatarhash) 1286 g_free(js->old_artist);
1278 g_free(js->old_avatarhash); 1287 g_free(js->old_title);
1279 if(js->old_artist) 1288 g_free(js->old_source);
1280 g_free(js->old_artist); 1289 g_free(js->old_uri);
1281 if(js->old_title) 1290 g_free(js->old_track);
1282 g_free(js->old_title); 1291
1283 if(js->old_source)
1284 g_free(js->old_source);
1285 if(js->old_uri)
1286 g_free(js->old_uri);
1287 if(js->old_track)
1288 g_free(js->old_track);
1289
1290 g_free(js); 1292 g_free(js);
1291 1293
1292 gc->proto_data = NULL; 1294 gc->proto_data = NULL;
1293 } 1295 }
1294 1296