certi-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[certi-cvs] certi/libCERTI SocketHTTPProxy.cc


From: certi-cvs
Subject: [certi-cvs] certi/libCERTI SocketHTTPProxy.cc
Date: Tue, 19 May 2009 15:52:47 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Petr Gotthard <gotthardp>       09/05/19 15:52:47

Modified files:
        libCERTI       : SocketHTTPProxy.cc 

Log message:
        Bug #26621 fixed.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/SocketHTTPProxy.cc?cvsroot=certi&r1=3.3&r2=3.4

Patches:
Index: SocketHTTPProxy.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/SocketHTTPProxy.cc,v
retrieving revision 3.3
retrieving revision 3.4
diff -u -b -r3.3 -r3.4
--- SocketHTTPProxy.cc  27 Oct 2008 10:26:49 -0000      3.3
+++ SocketHTTPProxy.cc  19 May 2009 15:52:46 -0000      3.4
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: SocketHTTPProxy.cc,v 3.3 2008/10/27 10:26:49 erk Exp $
+// $Id: SocketHTTPProxy.cc,v 3.4 2009/05/19 15:52:46 gotthardp Exp $
 // ----------------------------------------------------------------------------
 
 #include "SocketHTTPProxy.hh"
@@ -112,17 +112,27 @@
     if (http_proxy == NULL)
         http_proxy = getenv("http_proxy"); // global settings
 
-    if (http_proxy != NULL) {
+    if (http_proxy != NULL && *http_proxy != '\0') {
         std::string proxy_address;
         in_port_t proxy_port;
 
-        const char *strpport = strchr(http_proxy, ':');
+        // skip http://
+        const char *protoend = strchr(http_proxy, ':');
+        if (protoend == NULL ||
+          protoend[1] != '/' || protoend[2] != '/' || protoend[3] == '\0')
+        {
+            D.Out(pdDebug, "Invalid HTTP proxy URL.");
+            throw NetworkError("Invalid HTTP proxy URL.");
+        }
+
+        const char *strpaddress = protoend+3;
+        const char *strpport = strchr(strpaddress, ':');
         if (strpport) {
-            proxy_address.assign(http_proxy, strpport-http_proxy);
+            proxy_address.assign(strpaddress, strpport-strpaddress);
             proxy_port = atoi(strpport+1);
         }
         else {
-            proxy_address.assign(http_proxy);
+            proxy_address.assign(strpaddress);
             proxy_port = 3128;
         }
 
@@ -242,4 +252,4 @@
 
 } // namespace
 
-// $Id: SocketHTTPProxy.cc,v 3.3 2008/10/27 10:26:49 erk Exp $
+// $Id: SocketHTTPProxy.cc,v 3.4 2009/05/19 15:52:46 gotthardp Exp $




reply via email to

[Prev in Thread] Current Thread [Next in Thread]