]> code.delx.au - cgiproxy/blobdiff - proxy.php
Ruby proxy
[cgiproxy] / proxy.php
diff --git a/proxy.php b/proxy.php
deleted file mode 100644 (file)
index fdbf912..0000000
--- a/proxy.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-
-function debugAndDie() {
-       print "<pre>";
-       print_r($_GET);
-       print_r($_POST);
-       print_r($_COOKIE);
-       print_r($_SERVER);
-       print_r(apache_request_headers());
-       print "</pre>";
-       die();
-}
-
-function debug($msg) {
-       $fp = fopen("/tmp/debug.log", "a");
-       fwrite($fp, "===\n");
-       fwrite($fp, $msg);
-       fwrite($fp, "\n");
-       fclose($fp);
-}
-
-function getUrl($url) {
-       if(isset($_SERVER["PATH_INFO"])) {
-               $url .= $_SERVER["PATH_INFO"];
-       }
-       $url = parse_url($url);
-       if(!isset($url["port"])) {
-               $url["port"] = 80;
-               if($url["scheme"] == "https") {
-                       $url["port"] = 443;
-               }
-       }
-       if(strlen($_SERVER["QUERY_STRING"]) > 0) {
-               $url["path"] = $url["path"] . "?" . $_SERVER["QUERY_STRING"];
-       }
-       return $url;
-}
-
-function generateRequest($rmeth, $host, $path) {
-       $crlf = "\r\n";
-
-       $req = $rmeth . " " . $path . " HTTP/1.0" . $crlf;
-
-       $headers = apache_request_headers();
-       if(isset($headers["Host"])) {
-               $req .= "Host: " . $headers["Host"] . $crlf;
-       }
-       if(isset($headers["Cookie"])) {
-               $req .= "Cookie: " . $headers["Cookie"] . $crlf;
-       }
-       if(isset($headers["Cookie2"])) {
-               $req .= "Cookie2: " . $headers["Cookie2"] . $crlf;
-       }
-       if(isset($headers["Referer"])) {
-               $req .= "Referer: " . $headers["Referer"] . $crlf;
-       }
-       if(isset($headers["Content-Length"])) {
-               $req .= "Content-Length: " . $headers["Content-Length"] . $crlf;
-       }
-       if(isset($headers["Content-Type"])) {
-               $val = $headers["Content-Type"];
-               $val = str_replace("PHPHACK", "", $val);
-               $req .= "Content-Type: " . $headers["Content-Type"] . $crlf;
-       }
-
-       $req .= $crlf;
-
-       return $req;
-}
-
-function doProxy($scheme, $rmeth, $host, $port, $path)
-{
-       $req = generateRequest($rmeth, $host, $path);
-
-       // Make the HTTP request
-       $fp = fsockopen(($scheme == 'https' ? 'ssl://' : '') . $host, $port);
-       if(!$fp) {
-               die("Could not connect to internal server!");
-       }
-       fwrite($fp, $req);
-       if($rmeth == "POST") {
-               $fpi = fopen("php://input", "rb");
-               while(!feof($fpi)) {
-                       fwrite($fp, fread($fpi, 1024));
-               }
-               fclose($fpi);
-       }
-
-       $headers = array();
-       $mode = 0;
-       while(is_resource($fp) && $fp && !feof($fp)) {
-               // Parsing headers
-               if($mode == 0) {
-                       // Grab a line
-                       $line = fgets($fp);
-
-                       if(strlen(trim($line)) != 0) {
-                               array_push($headers, $line);
-                       } else {
-                               $mode = 1;
-                               foreach($headers as $header) {
-                                       header($header);
-                               }
-                       }
-               }
-               // Body data!
-               else {
-                       myPassThru($fp);
-               }
-       }
-
-       fclose($fp);
-}
-
-function myPassThru($fp) {
-       $data = "";
-       while(!feof($fp)) {
-               $data .= fread($fp, 1024);
-       }
-       $data = str_replace("enctype=\"multipart/form-data\"", "enctype=\"PHPHACKmultipart/form-data\"", $data);
-       print $data;
-}
-
-function main($basePath) {
-       ///debugAndDie();
-
-       $u = getUrl($basePath);
-       $rmeth = $_SERVER["REQUEST_METHOD"];
-       doProxy($u["scheme"], $rmeth, $u["host"], $u["port"], $u["path"]);
-}
-
-// Run!
-if(!isset($PROXY)) {
-       die("No forwarding available!");
-}
-
-main($PROXY);
-
-?>