Mercurial > pidgin
diff libpurple/protocols/jabber/jabber.c @ 30506:e0796db1df8a
Keep track of more than one relay request at a time (this is probably not
likely to happen, but you never know...)
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Wed, 30 Sep 2009 21:31:04 +0000 |
parents | a7e16735b218 |
children | 093c79fa01c7 d760797a3528 |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Wed Sep 30 18:53:47 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Wed Sep 30 21:31:04 2009 +0000 @@ -844,7 +844,7 @@ js->stun_query = NULL; js->google_relay_token = NULL; js->google_relay_host = NULL; - js->google_relay_request = NULL; + js->google_relay_requests = NULL; /* if we are idle, set idle-ness on the stream (this could happen if we get disconnected and the reconnects while being idle. I don't think it makes @@ -1569,14 +1569,16 @@ /* remove Google relay-related stuff */ g_free(js->google_relay_token); g_free(js->google_relay_host); - if (js->google_relay_request) { - purple_util_fetch_url_cancel(js->google_relay_request); - js->google_relay_request = NULL; - } - - if (js->google_relay_request != NULL) { - purple_util_fetch_url_cancel(js->google_relay_request); - js->google_relay_request = NULL; + if (js->google_relay_requests) { + while (js->google_relay_requests) { + PurpleUtilFetchUrlData *url_data = + (PurpleUtilFetchUrlData *) js->google_relay_requests->data; + purple_util_fetch_url_cancel(url_data); + g_free(url_data); + js->google_relay_requests = + g_list_delete_link(js->google_relay_requests, + js->google_relay_requests); + } } g_free(js);