# HG changeset patch # User Tobias Markmann # Date 1217975079 0 # Node ID 15d9825a5621c281e4d792af3fb64a63f422968b # Parent 1cbe5a9f6efba7a379ee14b515d3e93334692587 * adding receive callback; preparing receiving and boot code diff -r 1cbe5a9f6efb -r 15d9825a5621 libpurple/protocols/jabber/bosh.c --- a/libpurple/protocols/jabber/bosh.c Tue Aug 05 18:44:42 2008 +0000 +++ b/libpurple/protocols/jabber/bosh.c Tue Aug 05 22:24:39 2008 +0000 @@ -52,9 +52,19 @@ conn->conn_a->userdata = conn; } +static void jabber_bosh_connection_boot(PurpleBOSHConnection *conn) { + +} + +void jabber_bosh_connection_send(PurpleBOSHConnection *conn, xmlnode *node) { + +} + static void jabber_bosh_connection_connected(PurpleHTTPConnection *conn) { PurpleBOSHConnection *bosh_conn = conn->userdata; - if (bosh_conn->connect_cb) bosh_conn->connect_cb(bosh_conn); + + if (bosh->ready && bosh_conn->connect_cb) bosh_conn->connect_cb(bosh_conn); + else jabber_bosh_connection_boot(conn); } void jabber_bosh_connection_connect(PurpleBOSHConnection *conn) { @@ -62,6 +72,9 @@ jabber_bosh_http_connection_connect(conn->conn_a); } +static void jabber_bosh_http_connection_receive(gpointer data, gint source, PurpleInputCondition condition) { + PurpleHTTPConnection conn = data; +} void jabber_bosh_http_connection_init(PurpleHTTPConnection *conn, PurpleAccount *account, char *host, int port) { conn->account = account; @@ -77,11 +90,12 @@ return; } conn->fd = source; + conn->ie_handle = purple_input_add(conn->fd, jabber_bosh_http_connection_receive, PURPLE_INPUT_READ, cond); if (conn->connect_cb) conn->connect_cb(conn); } void jabber_bosh_http_connection_connect(PurpleHTTPConnection *conn) { if((purple_proxy_connect(&(conn->handle), conn->account, conn->host, conn->port, jabber_bosh_http_connection_callback, conn)) == NULL) { purple_debug_info("jabber", "Unable to connect to %s.\n", conn->host); - } + } } \ No newline at end of file diff -r 1cbe5a9f6efb -r 15d9825a5621 libpurple/protocols/jabber/bosh.h --- a/libpurple/protocols/jabber/bosh.h Tue Aug 05 18:44:42 2008 +0000 +++ b/libpurple/protocols/jabber/bosh.h Tue Aug 05 22:24:39 2008 +0000 @@ -48,6 +48,7 @@ PurpleHTTPConnection *conn_a; PurpleHTTPConnection *conn_b; + gboolean ready; PurpleBOSHConnectionConnectFunction connect_cb; PurpleBOSHConnectionReciveFunction receive_cb; }; @@ -57,10 +58,11 @@ char *host; int port; int handle; + int ie_handle; PurpleConnection *conn; PurpleAccount *account; GQueue *requests; - + int pih PurpleHTTPConnectionConnectFunction connect_cb; void *userdata; }; @@ -82,6 +84,7 @@ void jabber_bosh_connection_init(PurpleBOSHConnection *conn, PurpleAccount *account, char *url); void jabber_bosh_connection_connect(PurpleBOSHConnection *conn); +void jabber_bosh_connection_send(PurpleBOSHConnection *conn, xmlnode *node); void jabber_bosh_http_connection_init(PurpleHTTPConnection *conn, PurpleAccount *account, char *host, int port); void jabber_bosh_http_connection_connect(PurpleHTTPConnection *conn); diff -r 1cbe5a9f6efb -r 15d9825a5621 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Tue Aug 05 18:44:42 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Tue Aug 05 22:24:39 2008 +0000 @@ -556,7 +556,6 @@ } 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");