comparison libpurple/protocols/jabber/bosh.c @ 25601:15d9825a5621

* adding receive callback; preparing receiving and boot code
author Tobias Markmann <tfar@soc.pidgin.im>
date Tue, 05 Aug 2008 22:24:39 +0000
parents 1cbe5a9f6efb
children f9322be084c4
comparison
equal deleted inserted replaced
25600:1cbe5a9f6efb 25601:15d9825a5621
50 conn->conn_a = g_new0(PurpleHTTPConnection, 1); 50 conn->conn_a = g_new0(PurpleHTTPConnection, 1);
51 jabber_bosh_http_connection_init(conn->conn_a, conn->account, conn->host, conn->port); 51 jabber_bosh_http_connection_init(conn->conn_a, conn->account, conn->host, conn->port);
52 conn->conn_a->userdata = conn; 52 conn->conn_a->userdata = conn;
53 } 53 }
54 54
55 static void jabber_bosh_connection_boot(PurpleBOSHConnection *conn) {
56
57 }
58
59 void jabber_bosh_connection_send(PurpleBOSHConnection *conn, xmlnode *node) {
60
61 }
62
55 static void jabber_bosh_connection_connected(PurpleHTTPConnection *conn) { 63 static void jabber_bosh_connection_connected(PurpleHTTPConnection *conn) {
56 PurpleBOSHConnection *bosh_conn = conn->userdata; 64 PurpleBOSHConnection *bosh_conn = conn->userdata;
57 if (bosh_conn->connect_cb) bosh_conn->connect_cb(bosh_conn); 65
66 if (bosh->ready && bosh_conn->connect_cb) bosh_conn->connect_cb(bosh_conn);
67 else jabber_bosh_connection_boot(conn);
58 } 68 }
59 69
60 void jabber_bosh_connection_connect(PurpleBOSHConnection *conn) { 70 void jabber_bosh_connection_connect(PurpleBOSHConnection *conn) {
61 conn->conn_a->connect_cb = jabber_bosh_connection_connected; 71 conn->conn_a->connect_cb = jabber_bosh_connection_connected;
62 jabber_bosh_http_connection_connect(conn->conn_a); 72 jabber_bosh_http_connection_connect(conn->conn_a);
63 } 73 }
64 74
75 static void jabber_bosh_http_connection_receive(gpointer data, gint source, PurpleInputCondition condition) {
76 PurpleHTTPConnection conn = data;
77 }
65 78
66 void jabber_bosh_http_connection_init(PurpleHTTPConnection *conn, PurpleAccount *account, char *host, int port) { 79 void jabber_bosh_http_connection_init(PurpleHTTPConnection *conn, PurpleAccount *account, char *host, int port) {
67 conn->account = account; 80 conn->account = account;
68 conn->host = host; 81 conn->host = host;
69 conn->port = port; 82 conn->port = port;
75 if (source < 0) { 88 if (source < 0) {
76 purple_debug_info("jabber", "Couldn't connect becasue of: %s\n", error); 89 purple_debug_info("jabber", "Couldn't connect becasue of: %s\n", error);
77 return; 90 return;
78 } 91 }
79 conn->fd = source; 92 conn->fd = source;
93 conn->ie_handle = purple_input_add(conn->fd, jabber_bosh_http_connection_receive, PURPLE_INPUT_READ, cond);
80 if (conn->connect_cb) conn->connect_cb(conn); 94 if (conn->connect_cb) conn->connect_cb(conn);
81 } 95 }
82 96
83 void jabber_bosh_http_connection_connect(PurpleHTTPConnection *conn) { 97 void jabber_bosh_http_connection_connect(PurpleHTTPConnection *conn) {
84 if((purple_proxy_connect(&(conn->handle), conn->account, conn->host, conn->port, jabber_bosh_http_connection_callback, conn)) == NULL) { 98 if((purple_proxy_connect(&(conn->handle), conn->account, conn->host, conn->port, jabber_bosh_http_connection_callback, conn)) == NULL) {
85 purple_debug_info("jabber", "Unable to connect to %s.\n", conn->host); 99 purple_debug_info("jabber", "Unable to connect to %s.\n", conn->host);
86 } 100 }
87 } 101 }