| 97 { |
97 { |
| 98 PurpleJabberBOSHConnection *conn; |
98 PurpleJabberBOSHConnection *conn; |
| 99 PurpleAccount *account; |
99 PurpleAccount *account; |
| 100 GProxyResolver *resolver; |
100 GProxyResolver *resolver; |
| 101 GError *error = NULL; |
101 GError *error = NULL; |
| 102 SoupURI *url_p; |
102 const gchar *scheme; |
| 103 |
103 |
| 104 account = purple_connection_get_account(js->gc); |
104 account = purple_connection_get_account(js->gc); |
| 105 resolver = purple_proxy_get_proxy_resolver(account, &error); |
105 resolver = purple_proxy_get_proxy_resolver(account, &error); |
| 106 if (resolver == NULL) { |
106 if (resolver == NULL) { |
| 107 purple_debug_error("jabber-bosh", |
107 purple_debug_error("jabber-bosh", |
| 109 error->message); |
109 error->message); |
| 110 g_error_free(error); |
110 g_error_free(error); |
| 111 return NULL; |
111 return NULL; |
| 112 } |
112 } |
| 113 |
113 |
| 114 url_p = soup_uri_new(url); |
114 scheme = g_uri_peek_scheme(url); |
| 115 if (!SOUP_URI_VALID_FOR_HTTP(url_p)) { |
115 if (scheme == NULL) { |
| 116 purple_debug_error("jabber-bosh", "Unable to parse given BOSH URL: %s", |
116 purple_debug_error("jabber-bosh", "Unable to parse given BOSH URL: %s", |
| 117 url); |
117 url); |
| 118 g_object_unref(resolver); |
118 g_object_unref(resolver); |
| 119 return NULL; |
119 return NULL; |
| 120 } |
120 } |
| 125 "timeout", JABBER_BOSH_TIMEOUT + 2, |
125 "timeout", JABBER_BOSH_TIMEOUT + 2, |
| 126 "user-agent", jabber_bosh_useragent, |
126 "user-agent", jabber_bosh_useragent, |
| 127 NULL); |
127 NULL); |
| 128 conn->url = g_strdup(url); |
128 conn->url = g_strdup(url); |
| 129 conn->js = js; |
129 conn->js = js; |
| 130 conn->is_ssl = (url_p->scheme == SOUP_URI_SCHEME_HTTPS); |
130 conn->is_ssl = g_str_equal(scheme, "https"); |
| 131 conn->send_buff = g_string_new(NULL); |
131 conn->send_buff = g_string_new(NULL); |
| 132 |
132 |
| 133 /* |
133 /* |
| 134 * Random 64-bit integer masked off by 2^52 - 1. |
134 * Random 64-bit integer masked off by 2^52 - 1. |
| 135 * |
135 * |