Mercurial > pidgin
diff libpurple/protocols/jabber/jabber.c @ 26590:acee7d2b1983
Hide PurpleTxtResponse and use a more purple API
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sat, 11 Apr 2009 21:20:31 +0000 |
parents | 400f74b95c0e |
children | e9a8e363d957 a8dbbcd069ab |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Sat Apr 11 20:31:19 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sat Apr 11 21:20:31 2009 +0000 @@ -584,14 +584,13 @@ } static void -txt_resolved_cb(PurpleTxtResponse *resp, int results, gpointer data) +txt_resolved_cb(GSList *responses, gpointer data) { JabberStream *js = data; - int n; - + js->srv_query_data = NULL; - if (results == 0) { + if (responses == NULL) { gchar *tmp; tmp = g_strdup_printf(_("Could not find alternative XMPP connection methods after failing to connect directly.\n")); purple_connection_error_reason (js->gc, @@ -599,10 +598,11 @@ g_free(tmp); return; } - - for (n = 0; n < results; n++) { + + while (responses) { + PurpleTxtResponse *resp = responses->data; gchar **token; - token = g_strsplit(resp[n].content, "=", 2); + token = g_strsplit(purple_txt_response_get_content(resp), "=", 2); if (!strcmp(token[0], "_xmpp-client-xbosh")) { purple_debug_info("jabber","Found alternative connection method using %s at %s.\n", token[0], token[1]); js->bosh = jabber_bosh_connection_init(js, token[1]); @@ -611,17 +611,20 @@ break; } g_strfreev(token); + purple_txt_response_destroy(resp); + responses = g_slist_delete_link(responses, responses); } + if (js->bosh) { jabber_bosh_connection_connect(js->bosh); } else { purple_debug_info("jabber","Didn't find an alternative connection method.\n"); } - for (n = 0; n < results; ++n) - g_free(resp[n].content); - - g_free(resp); + if (responses) { + g_slist_foreach(responses, (GFunc)purple_txt_response_destroy, NULL); + g_slist_free(responses); + } } static void