--- a/libpurple/protocols/mxit/protocol.c Sat Jun 22 20:20:39 2013 +0200 +++ b/libpurple/protocols/mxit/protocol.c Sun Jun 23 01:03:34 2013 +0200 @@ -38,6 +38,7 @@ #include "splashscreen.h" #include "login.h" #include "formcmds.h" +#include <libpurple/http.h> #include "http.h" #include "cipher.h" #include "voicevideo.h" @@ -338,14 +339,13 @@ { char request[256 + packet->datalen]; int reqlen; - char* host_name; - int host_port; - gboolean ok; + PurpleHttpURL *url; /* extract the HTTP host name and host port number to connect to */ - ok = purple_url_parse( session->http_server, &host_name, &host_port, NULL, NULL, NULL ); - if ( !ok ) { + url = purple_http_url_parse(session->http_server); + if (url == NULL) { purple_debug_error( MXIT_PLUGIN_ID, "HTTP POST error: (host name '%s' not valid)\n", session->http_server ); + return; } /* strip off the last '&' from the header */ @@ -362,7 +362,7 @@ "\r\n", session->http_server, purple_url_encode( packet->header ), - host_name, + purple_http_url_get_host(url), packet->datalen - MXIT_MS_OFFSET ); @@ -376,7 +376,10 @@ #endif /* send the request to the HTTP server */ - mxit_http_send_request( session, host_name, host_port, request, reqlen ); + mxit_http_send_request(session, purple_http_url_get_host(url), + purple_http_url_get_port(url), request, reqlen); + + purple_http_url_free(url); }