# HG changeset patch # User Mark Doliner # Date 1144188792 0 # Node ID dc28bca6a7b50529f3414e4d54a41367da67497f # Parent ffb752f106ecd651328421f75e05b35520618652 [gaim-migrate @ 15962] Fix a crash in the simple PRPL when the account is disabled while a dns srv lookup is in progress. committer: Tailor Script diff -r ffb752f106ec -r dc28bca6a7b5 src/protocols/simple/simple.c --- a/src/protocols/simple/simple.c Tue Apr 04 21:33:46 2006 +0000 +++ b/src/protocols/simple/simple.c Tue Apr 04 22:13:12 2006 +0000 @@ -1520,10 +1520,21 @@ } static void srvresolved(GaimSrvResponse *resp, int results, gpointer data) { - struct simple_account_data *sip = (struct simple_account_data*) data; + GaimConnection *gc; + struct simple_account_data *sip; + gchar *hostname; + int port; - gchar *hostname; - int port = gaim_account_get_int(sip->account, "port", 0); + gc = data; + if (!g_list_find(gaim_connections_get_all(), gc)) + { + /* This connection has been closed */ + g_free(resp); + return; + } + + sip = gc->proto_data; + port = gaim_account_get_int(sip->account, "port", 0); /* find the host to connect to */ if(results) { @@ -1604,9 +1615,9 @@ /* TCP case */ if(!sip->udp) { - gaim_srv_resolve("sip", "tcp", hosttoconnect, srvresolved, sip); + gaim_srv_resolve("sip", "tcp", hosttoconnect, srvresolved, gc); } else { /* UDP */ - gaim_srv_resolve("sip", "udp", hosttoconnect, srvresolved, sip); + gaim_srv_resolve("sip", "udp", hosttoconnect, srvresolved, gc); } g_free(hosttoconnect); }