libpurple/protocols/jabber/bosh.c

changeset 34219
eee308def583
parent 34218
de45cb0670a5
child 34268
cf61366236ee
child 34619
b8d8c1516d74
--- a/libpurple/protocols/jabber/bosh.c	Sat Jun 22 20:20:39 2013 +0200
+++ b/libpurple/protocols/jabber/bosh.c	Sun Jun 23 01:03:34 2013 +0200
@@ -25,7 +25,7 @@
 #include "core.h"
 #include "cipher.h"
 #include "debug.h"
-#include "obsolete.h"
+#include "http.h"
 #include "prpl.h"
 #include "util.h"
 #include "xmlnode.h"
@@ -200,33 +200,33 @@
 jabber_bosh_connection_init(JabberStream *js, const char *url)
 {
 	PurpleBOSHConnection *conn;
-	char *host, *path, *user, *passwd;
-	int port;
+	PurpleHttpURL *url_p;
 
-	if (!purple_url_parse(url, &host, &port, &path, &user, &passwd)) {
+	url_p = purple_http_url_parse(url);
+	if (!url_p) {
 		purple_debug_info("jabber", "Unable to parse given URL.\n");
 		return NULL;
 	}
 
 	conn = g_new0(PurpleBOSHConnection, 1);
-	conn->host = host;
-	conn->port = port;
-	conn->path = g_strdup_printf("/%s", path);
-	g_free(path);
+	conn->host = g_strdup(purple_http_url_get_host(url_p));
+	conn->port = purple_http_url_get_port(url_p);
+	conn->path = g_strdup(purple_http_url_get_path(url_p));
 	conn->pipelining = TRUE;
 
-	if (purple_ip_address_is_valid(host))
+	if (purple_ip_address_is_valid(purple_http_url_get_host(url_p)))
 		js->serverFQDN = g_strdup(js->user->domain);
 	else
-		js->serverFQDN = g_strdup(host);
+		js->serverFQDN = g_strdup(purple_http_url_get_host(url_p));
 
-	if ((user && user[0] != '\0') || (passwd && passwd[0] != '\0')) {
+	if (purple_http_url_get_username(url_p) ||
+		purple_http_url_get_password(url_p))
+	{
 		purple_debug_info("jabber", "Ignoring unexpected username and password "
 		                            "in BOSH URL.\n");
 	}
 
-	g_free(user);
-	g_free(passwd);
+	purple_http_url_free(url_p);
 
 	conn->js = js;
 

mercurial