diff options
author | Jeff Muizelaar <jmuizelaar@mozilla.com> | 2010-01-18 15:17:20 -0500 |
---|---|---|
committer | Jeff Muizelaar <jmuizelaar@mozilla.com> | 2010-01-18 15:17:20 -0500 |
commit | 66b27bab2e61a80cecf6b7c830d0941dc0288f8d (patch) | |
tree | cc946361f02516851d8d9ce9eb5afdb04cca439a | |
parent | e9da74b5a91129bd94d28545f7d586676aed6117 (diff) |
Get something working
-rwxr-xr-x | TinyHTTPProxy.py | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/TinyHTTPProxy.py b/TinyHTTPProxy.py index 3d82b2d..0f170cc 100755 --- a/TinyHTTPProxy.py +++ b/TinyHTTPProxy.py @@ -13,7 +13,9 @@ Any help will be greatly appreciated. SUZUKI Hisao __version__ = "0.2.1" -import BaseHTTPServer, select, socket, SocketServer, urlparse +record = False + +import BaseHTTPServer, select, socket, SocketServer, urlparse, urllib class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler): __base = BaseHTTPServer.BaseHTTPRequestHandler @@ -63,6 +65,15 @@ class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): (scm, netloc, path, params, query, fragment) = urlparse.urlparse( self.path, 'http') + current_file_name = urllib.quote(self.path, "")[:250] + if record: + result = open("log/" + current_file_name, "r") + print urllib.quote(self.path, "") + self.connection.send(result.read()) + self.connection.close() + self.log_request() + return + self.current_file = open("log/" + current_file_name, "w+") if scm != 'http' or fragment or not netloc: self.send_error(400, "bad url %s" % self.path) return @@ -77,11 +88,13 @@ class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler): self.headers['Connection'] = 'close' del self.headers['Proxy-Connection'] for key_val in self.headers.items(): - soc.send("%s: %s\r\n" % key_val) + if key_val[0] != 'accept-encoding': + soc.send("%s: %s\r\n" % key_val) soc.send("\r\n") self._read_write(soc) finally: print "\t" "bye" + self.current_file.close() soc.close() self.connection.close() @@ -100,6 +113,7 @@ class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler): else: out = soc data = i.recv(8192) + self.current_file.write(data) if data: out.send(data) count = 0 @@ -117,6 +131,7 @@ class ThreadingHTTPServer (SocketServer.ThreadingMixIn, if __name__ == '__main__': from sys import argv + record = True if argv[1:] and argv[1] in ('-h', '--help'): print argv[0], "[port [allowed_client_name ...]]" else: @@ -130,4 +145,4 @@ if __name__ == '__main__': del argv[2:] else: print "Any clients will be served..." - BaseHTTPServer.test(ProxyHandler, ThreadingHTTPServer) + BaseHTTPServer.test(ProxyHandler, ThreadingHTTPServer) |