Mercurial > pidgin.yaz
diff libpurple/protocols/jabber/jabber.c @ 25600:1cbe5a9f6efb
* adding bosh files to Makefile.am & .mingw
* establishing HTTP connection for BOSH
author | Tobias Markmann <tfar@soc.pidgin.im> |
---|---|
date | Tue, 05 Aug 2008 18:44:42 +0000 |
parents | 9f8951284a2e |
children | 15d9825a5621 |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Sun Aug 03 22:58:10 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Tue Aug 05 18:44:42 2008 +0000 @@ -521,6 +521,12 @@ jabber_stream_set_state(js, JABBER_STREAM_INITIALIZING_ENCRYPTION); } +static void +jabber_bosh_login_callback(PurpleBOSHConnection *conn) +{ + purple_debug_info("jabber","YAY...BOSH connection established.\n"); +} + static void txt_resolved_cb(PurpleTxtResponse *resp, int results, gpointer data) { @@ -533,7 +539,8 @@ 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_NETWORK_ERROR, tmp); - g_free(tmp); + g_free(tmp); + return; } for (n = 0; n < results; n++) { @@ -541,12 +548,19 @@ 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]); - js->bosh.url = g_strdup(token[1]); + jabber_bosh_connection_init(&(js->bosh), gc->account, token[1]); g_strfreev(token); break; } g_strfreev(token); } + if (js->bosh.host) { + js->bosh.userdata = gc; + js->bosh.connect_cb = jabber_bosh_login_callback; + jabber_bosh_connection_connect(&(js->bosh)); + } else { + purple_debug_info("jabber","Didn't find an alternative connection method.\n"); + } } static void