#!/usr/bin/python2.4

import sys
import BaseHTTPServer
import httplib
import re

ChunkSize=4*1024

class DumbHttpHandler(BaseHTTPServer.BaseHTTPRequestHandler):
	UrlSplit = re.compile("^http://([^/]+)(/.*)?$").search
	def do_GET(self):
		print "Connected"
		print self.path
		Match = self.UrlSplit(self.path)
		Server = Match.groups()[0]
		Path = Match.groups()[1]

		Conn = httplib.HTTPConnection(Server)
		Conn.set_debuglevel(0)
		Conn.request("GET", Path)
		Response = Conn.getresponse()

		Response.msg["Transfer-Encoding"] = "chunked"
		Response.msg["Via"] = "HTTP/1.1 127.0.0.1 Dumb Serve-Chunked Proxy"
		del Response.msg["Content-Length"]

		print Response.msg

		self.wfile.write("HTTP/1.1 %s %s\r\n" % (Response.status, Response.reason))

		HeaderList = ["%s: %s" % (Hdr, Val) for Hdr, Val in Response.getheaders()]
		HeaderStr = '\r\n'.join(HeaderList)
		self.wfile.write(HeaderStr)
		self.wfile.write('\r\n\r\n')
		
		Data = Response.read(ChunkSize)
		while len(Data):
			ClientSend = "%x\r\n%s\r\n" % (len(Data), Data)
			self.wfile.write(ClientSend)
			Data = Response.read(ChunkSize)

		ClientSend = "0\r\n\r\n"
		self.wfile.write(ClientSend)

def run(server_class=BaseHTTPServer.HTTPServer,
		        handler_class=DumbHttpHandler):
	server_address = ('', 8000)
	httpd = server_class(server_address, handler_class)
	httpd.serve_forever()

def main():
	run()

if __name__=='__main__':
	main()
