libpurple/protocols/jabber/bosh.c

changeset 41211
2e804c9c0919
parent 40819
54b2a95ac176
child 41212
9f0f4c23132e
equal deleted inserted replaced
41210:c083249ce49d 41211:2e804c9c0919
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 *
138 * rid. 138 * rid.
139 */ 139 */
140 conn->rid = (((guint64)g_random_int() << 32) | g_random_int()); 140 conn->rid = (((guint64)g_random_int() << 32) | g_random_int());
141 conn->rid &= 0xFFFFFFFFFFFFFLL; 141 conn->rid &= 0xFFFFFFFFFFFFFLL;
142 142
143 soup_uri_free(url_p);
144 g_object_unref(resolver); 143 g_object_unref(resolver);
145 144
146 jabber_bosh_connection_session_create(conn); 145 jabber_bosh_connection_session_create(conn);
147 146
148 return conn; 147 return conn;

mercurial