Mercurial > public > mercurial-scm > hg-stable
comparison tests/tinyproxy.py @ 28646:f452c1cf7a8f
tests: make tinyproxy.py use print_function
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 28 Mar 2016 01:57:44 +0530 |
parents | b502138f5faa |
children | 0023a6e1328f |
comparison
equal
deleted
inserted
replaced
28645:c226e9b69bac | 28646:f452c1cf7a8f |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 | 2 |
3 from __future__ import absolute_import | 3 from __future__ import absolute_import, print_function |
4 | 4 |
5 __doc__ = """Tiny HTTP Proxy. | 5 __doc__ = """Tiny HTTP Proxy. |
6 | 6 |
7 This module implements GET, HEAD, POST, PUT and DELETE methods | 7 This module implements GET, HEAD, POST, PUT and DELETE methods |
8 on BaseHTTPServer, and behaves as an HTTP proxy. The CONNECT | 8 on BaseHTTPServer, and behaves as an HTTP proxy. The CONNECT |
48 i = netloc.find(':') | 48 i = netloc.find(':') |
49 if i >= 0: | 49 if i >= 0: |
50 host_port = netloc[:i], int(netloc[i + 1:]) | 50 host_port = netloc[:i], int(netloc[i + 1:]) |
51 else: | 51 else: |
52 host_port = netloc, 80 | 52 host_port = netloc, 80 |
53 print "\t" "connect to %s:%d" % host_port | 53 print("\t" "connect to %s:%d" % host_port) |
54 try: soc.connect(host_port) | 54 try: soc.connect(host_port) |
55 except socket.error as arg: | 55 except socket.error as arg: |
56 try: msg = arg[1] | 56 try: msg = arg[1] |
57 except (IndexError, TypeError): msg = arg | 57 except (IndexError, TypeError): msg = arg |
58 self.send_error(404, msg) | 58 self.send_error(404, msg) |
68 " 200 Connection established\r\n") | 68 " 200 Connection established\r\n") |
69 self.wfile.write("Proxy-agent: %s\r\n" % self.version_string()) | 69 self.wfile.write("Proxy-agent: %s\r\n" % self.version_string()) |
70 self.wfile.write("\r\n") | 70 self.wfile.write("\r\n") |
71 self._read_write(soc, 300) | 71 self._read_write(soc, 300) |
72 finally: | 72 finally: |
73 print "\t" "bye" | 73 print("\t" "bye") |
74 soc.close() | 74 soc.close() |
75 self.connection.close() | 75 self.connection.close() |
76 | 76 |
77 def do_GET(self): | 77 def do_GET(self): |
78 (scm, netloc, path, params, query, fragment) = urlparse.urlparse( | 78 (scm, netloc, path, params, query, fragment) = urlparse.urlparse( |
93 for key_val in self.headers.items(): | 93 for key_val in self.headers.items(): |
94 soc.send("%s: %s\r\n" % key_val) | 94 soc.send("%s: %s\r\n" % key_val) |
95 soc.send("\r\n") | 95 soc.send("\r\n") |
96 self._read_write(soc) | 96 self._read_write(soc) |
97 finally: | 97 finally: |
98 print "\t" "bye" | 98 print("\t" "bye") |
99 soc.close() | 99 soc.close() |
100 self.connection.close() | 100 self.connection.close() |
101 | 101 |
102 def _read_write(self, soc, max_idling=20): | 102 def _read_write(self, soc, max_idling=20): |
103 iw = [self.connection, soc] | 103 iw = [self.connection, soc] |
120 break | 120 break |
121 if data: | 121 if data: |
122 out.send(data) | 122 out.send(data) |
123 count = 0 | 123 count = 0 |
124 else: | 124 else: |
125 print "\t" "idle", count | 125 print("\t" "idle", count) |
126 if count == max_idling: | 126 if count == max_idling: |
127 break | 127 break |
128 | 128 |
129 do_HEAD = do_GET | 129 do_HEAD = do_GET |
130 do_POST = do_GET | 130 do_POST = do_GET |
140 a.close() | 140 a.close() |
141 | 141 |
142 if __name__ == '__main__': | 142 if __name__ == '__main__': |
143 from sys import argv | 143 from sys import argv |
144 if argv[1:] and argv[1] in ('-h', '--help'): | 144 if argv[1:] and argv[1] in ('-h', '--help'): |
145 print argv[0], "[port [allowed_client_name ...]]" | 145 print(argv[0], "[port [allowed_client_name ...]]") |
146 else: | 146 else: |
147 if argv[2:]: | 147 if argv[2:]: |
148 allowed = [] | 148 allowed = [] |
149 for name in argv[2:]: | 149 for name in argv[2:]: |
150 client = socket.gethostbyname(name) | 150 client = socket.gethostbyname(name) |
151 allowed.append(client) | 151 allowed.append(client) |
152 print "Accept: %s (%s)" % (client, name) | 152 print("Accept: %s (%s)" % (client, name)) |
153 ProxyHandler.allowed_clients = allowed | 153 ProxyHandler.allowed_clients = allowed |
154 del argv[2:] | 154 del argv[2:] |
155 else: | 155 else: |
156 print "Any clients will be served..." | 156 print("Any clients will be served...") |
157 BaseHTTPServer.test(ProxyHandler, ThreadingHTTPServer) | 157 BaseHTTPServer.test(ProxyHandler, ThreadingHTTPServer) |