Mercurial > pidgin
diff libpurple/protocols/jabber/jabber.c @ 25181:7de1f124f95a
Jabber BOSH: Many fixes
* Move most of the function and structure definitions into bosh.c
* Made js->bosh a pointer, the init function allocates and returns
the pointer, etc.
* Drop the account member of PurpleHTTPConnection
* Fix many, many warnings, including a few bug-related things
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 01 Dec 2008 05:47:04 +0000 |
parents | 1516525c86fa |
children | 17b60b844803 |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Mon Dec 01 04:00:41 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Mon Dec 01 05:47:04 2008 +0000 @@ -393,7 +393,7 @@ if (js->use_bosh) { xmlnode *xnode = xmlnode_from_str(data, len); - if (xnode) jabber_bosh_connection_send(&(js->bosh), xnode); + if (xnode) jabber_bosh_connection_send(js->bosh, xnode); else { purple_connection_error_reason(js->gc, PURPLE_CONNECTION_ERROR_OTHER_ERROR, _("Someone tried to send non-XML in a Jabber world.")); @@ -572,8 +572,7 @@ static void txt_resolved_cb(PurpleTxtResponse *resp, int results, gpointer data) { - PurpleConnection *gc = data; - JabberStream *js = gc->proto_data; + JabberStream *js = data; int n; js->srv_query_data = NULL; @@ -581,7 +580,7 @@ if (results == 0) { gchar *tmp; tmp = g_strdup_printf(_("Could not find alternative XMPP connection methods after failing to connect directly.\n")); - purple_connection_error_reason (gc, + purple_connection_error_reason (js->gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, tmp); g_free(tmp); return; @@ -592,15 +591,14 @@ token = g_strsplit(resp[n].content, "=", 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]); - jabber_bosh_connection_init(&(js->bosh), js->gc->account, js, token[1]); + js->bosh = jabber_bosh_connection_init(js, token[1]); g_strfreev(token); break; } g_strfreev(token); } - if (js->bosh.host) { - js->bosh.userdata = gc; - jabber_bosh_connection_connect(&(js->bosh)); + if (js->bosh) { + jabber_bosh_connection_connect(js->bosh); } else { purple_debug_info("jabber","Didn't find an alternative connection method.\n"); } @@ -618,7 +616,7 @@ try_srv_connect(js); } else { purple_debug_info("jabber","Couldn't connect directly to %s. Trying to find alternative connection methods, like BOSH.\n", js->user->domain); - js->srv_query_data = purple_txt_resolve("_xmppconnect", js->user->domain, txt_resolved_cb, gc); + js->srv_query_data = purple_txt_resolve("_xmppconnect", js->user->domain, txt_resolved_cb, js); } return; } @@ -771,7 +769,7 @@ /* XXX FORCE_BOSH: Remove this */ if (force_bosh) { - js->srv_query_data = purple_txt_resolve("_xmppconnect", js->user->domain, txt_resolved_cb, gc); + js->srv_query_data = purple_txt_resolve("_xmppconnect", js->user->domain, txt_resolved_cb, js); return; }