Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(266)

Unified Diff: tools/playback_benchmark/proxy_handler.py

Issue 57373008: Remove tools/playback_benchmark. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/playback_benchmark/playback_driver.py ('k') | tools/playback_benchmark/run.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/playback_benchmark/proxy_handler.py
diff --git a/tools/playback_benchmark/proxy_handler.py b/tools/playback_benchmark/proxy_handler.py
deleted file mode 100644
index b45f96067a6d3b5b931a60d8f082af9f0f580eef..0000000000000000000000000000000000000000
--- a/tools/playback_benchmark/proxy_handler.py
+++ /dev/null
@@ -1,122 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""HTTP proxy request handler with SSL support.
-
- RequestHandler: Utility class for parsing HTTP requests.
- ProxyHandler: HTTP proxy handler.
-"""
-
-import BaseHTTPServer
-import cgi
-import OpenSSL
-import os
-import socket
-import SocketServer
-import sys
-import traceback
-import urlparse
-
-
-class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
- """Class for reading HTTP requests and writing HTTP responses"""
-
- protocol_version = "HTTP/1.1"
- request_version = protocol_version
-
- class HTTPRequestException(Exception): pass
-
- def __init__(self, rfile, wfile, server):
- self.rfile = rfile
- self.wfile = wfile
- self.server = server
-
- def ReadRequest(self):
- "Reads and parses single HTTP request from self.rfile"
-
- self.raw_requestline = self.rfile.readline()
- if not self.raw_requestline:
- self.close_connection = 1
- raise HTTPRequestException('failed to read request line')
- if not self.parse_request():
- raise HTTPRequestException('failed to parse request')
- self.headers = dict(self.headers)
- self.body = None
- if 'content-length' in self.headers:
- self.body = self.rfile.read(int(self.headers['content-length']))
-
- def log_message(self, format, *args):
- pass
-
-
-class ProxyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
- "Request handler class for proxy server"
-
- server_version = "PlaybackProxy/0.0.1"
- protocol_version = "HTTP/1.1"
-
- def do_CONNECT(self):
- "Handles CONNECT HTTP request"
-
- server = self.path.split(':')[0]
- certificate_file = os.path.join(self.certificate_directory, server)
- if not os.path.isfile(certificate_file):
- sys.stderr.write('request to connect %s is ignored\n' % server)
- self.send_response(501)
- self.send_header('Proxy-agent', self.version_string())
- self.end_headers()
- return
-
- # Send confirmation to browser.
- self.send_response(200, 'Connection established')
- self.send_header('Proxy-agent', self.version_string())
- self.end_headers()
-
- # Create SSL context.
- context = OpenSSL.SSL.Context(OpenSSL.SSL.SSLv23_METHOD)
- context.use_privatekey_file(certificate_file)
- context.use_certificate_file(certificate_file)
-
- # Create and initialize SSL connection atop of tcp socket.
- ssl_connection = OpenSSL.SSL.Connection(context, self.connection)
- ssl_connection.set_accept_state()
- ssl_connection.do_handshake()
- ssl_rfile = socket._fileobject(ssl_connection, "rb", self.rbufsize)
- ssl_wfile = socket._fileobject(ssl_connection, "wb", self.wbufsize)
-
- # Handle http requests coming from ssl_connection.
- handler = RequestHandler(ssl_rfile, ssl_wfile, self.path)
- try:
- handler.close_connection = 1
- while True:
- handler.ReadRequest()
- self.driver.ProcessRequest(handler)
- if handler.close_connection: break
- except (OpenSSL.SSL.SysCallError, OpenSSL.SSL.ZeroReturnError):
- pass
- finally:
- self.close_connection = 1
-
- def do_GET(self):
- self.driver.ProcessRequest(self)
-
- def do_POST(self):
- if 'content-length' in self.headers:
- self.body = self.rfile.read(int(self.headers['content-length']))
- self.driver.ProcessRequest(self)
-
- def log_message(self, format, *args):
- sys.stdout.write((format % args) + '\n')
-
-
-class ThreadingHTTPServer (SocketServer.ThreadingMixIn,
- BaseHTTPServer.HTTPServer):
- pass
-
-
-def CreateServer(driver, port, certificate_directory=None):
- if not certificate_directory:
- certificate_directory = os.path.join(os.getcwd(), 'certificates')
- ProxyHandler.driver = driver
- ProxyHandler.certificate_directory = certificate_directory
- return ThreadingHTTPServer(('', port), ProxyHandler)
« no previous file with comments | « tools/playback_benchmark/playback_driver.py ('k') | tools/playback_benchmark/run.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698