Index: common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.359
diff -u -B -u -r1.359 common.inc
--- common.inc	21 Jun 2004 20:14:41 -0000	1.359
+++ common.inc	3 Aug 2004 03:25:06 -0000
@@ -305,11 +307,24 @@
  *   headers, data, and redirect status.
  */
 function drupal_http_request($url, $headers = array(), $method = 'GET', $data = NULL, $retry = 3) {
+  global $http_proxy;
+
   // Parse the URL, and make sure we can handle the schema
   $uri = parse_url($url);
+
+  // temporary patch for proxy connections
+  if (isset($http_proxy) && ($uri['scheme'] == "http")) {
+	$host = $http_proxy['host'] ? $http_proxy['host'] : $uri['host'];
+	$port = $http_proxy['port'] ? $http_proxy['port'] : 8080;
+  }
+  else {
+	$host = $uri['host'];
+	$port = $uri['port'] ? $uri['port'] : 80;
+  }
+
   switch ($uri['scheme']) {
     case 'http':
-      $fp = @fsockopen($uri['host'], ($uri['port'] ? $uri['port'] : 80), $errno, $errstr, 15);
+      $fp = @fsockopen($host, $port, $errno, $errstr, 15);
       break;
     case 'https':
       // Note: only works for PHP 4.3 compiled with openssl
@@ -331,6 +346,9 @@
   if ($uri['query']) {
     $path .= "?$uri[query]";
   }
+  if (isset($http_proxy) && ($uri['scheme'] == "http")) {
+	$path = $uri['scheme'] . "://" . $uri['host'] . $uri['path'];
+  }
 
   // Create http request
   $defaults = array(
Index: conf.php
===================================================================
RCS file: /cvs/drupal/drupal/includes/conf.php,v
retrieving revision 1.29
diff -u -B -u -r1.29 conf.php
--- conf.php	30 Apr 2004 05:12:36 -0000	1.29
+++ conf.php	3 Aug 2004 03:25:06 -0000
@@ -66,4 +67,10 @@
 //  "<a href=\"blog\">journal</a>",
 //  "<a href=\"story\">articles</a>");
 
+# HTTP Proxy:
+# 
+# This allows you to override normal HTTP connections to go over
+# your preferred HTTP proxy.
+//$http_proxy = array("host" => "wwwcache.cam.ac.uk", "port" => 8080);
+
 ?>
