[MPlayer-cvslog] r32640 - in trunk/stream: network.c url.c url.h

cboesch subversion at mplayerhq.hu
Sun Nov 21 17:52:22 CET 2010


Author: cboesch
Date: Sun Nov 21 17:52:22 2010
New Revision: 32640

Log:
Do not keep authentication in URL on connection through a proxy

Modified:
   trunk/stream/network.c
   trunk/stream/url.c
   trunk/stream/url.h

Modified: trunk/stream/network.c
==============================================================================
--- trunk/stream/network.c	Sun Nov 21 13:25:44 2010	(r32639)
+++ trunk/stream/network.c	Sun Nov 21 17:52:22 2010	(r32640)
@@ -209,7 +209,7 @@ http_send_request( URL_t *url, off_t pos
 			mp_msg(MSGT_NETWORK, MSGL_ERR, "Invalid URL '%s' to proxify\n", url->file+1);
 			goto err_out;
 		}
-		http_set_uri( http_hdr, server_url->url );
+		http_set_uri( http_hdr, server_url->noauth_url );
 	} else {
 		server_url = url;
 		http_set_uri( http_hdr, server_url->file );

Modified: trunk/stream/url.c
==============================================================================
--- trunk/stream/url.c	Sun Nov 21 13:25:44 2010	(r32639)
+++ trunk/stream/url.c	Sun Nov 21 17:52:22 2010	(r32640)
@@ -58,9 +58,19 @@ URL_t *url_redirect(URL_t **url, const c
   return res;
 }
 
+static int make_noauth_url(URL_t *url, char *dst, int dst_size)
+{
+    if (url->port)
+        return snprintf(dst, dst_size, "%s://%s:%d%s", url->protocol,
+                        url->hostname, url->port, url->file);
+    else
+        return snprintf(dst, dst_size, "%s://%s%s", url->protocol,
+                        url->hostname, url->file);
+}
+
 URL_t*
 url_new(const char* url) {
-	int pos1, pos2,v6addr = 0;
+	int pos1, pos2,v6addr = 0, noauth_len;
 	URL_t* Curl = NULL;
         char *escfilename=NULL;
 	char *ptr1=NULL, *ptr2=NULL, *ptr3=NULL, *ptr4=NULL;
@@ -232,6 +242,17 @@ url_new(const char* url) {
 		strcpy(Curl->file, "/");
 	}
 
+	noauth_len = make_noauth_url(Curl, NULL, 0);
+	if (noauth_len > 0) {
+		noauth_len++;
+		Curl->noauth_url = malloc(noauth_len);
+		if (!Curl->noauth_url) {
+			mp_msg(MSGT_NETWORK, MSGL_FATAL, MSGTR_MemAllocFailed);
+			goto err_out;
+		}
+		make_noauth_url(Curl, Curl->noauth_url, noauth_len);
+	}
+
         free(escfilename);
 	return Curl;
 err_out:

Modified: trunk/stream/url.h
==============================================================================
--- trunk/stream/url.h	Sun Nov 21 13:25:44 2010	(r32639)
+++ trunk/stream/url.h	Sun Nov 21 17:52:22 2010	(r32640)
@@ -27,6 +27,7 @@
 
 typedef struct {
 	char *url;
+	char *noauth_url;
 	char *protocol;
 	char *hostname;
 	char *file;


More information about the MPlayer-cvslog mailing list