Mercurial > pidgin.yaz
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 } |