| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """This is a simple HTTP/FTP/SYNC/TCP/UDP/ server used for testing Chrome. | 6 """This is a simple HTTP/FTP/SYNC/TCP/UDP/ server used for testing Chrome. |
| 7 | 7 |
| 8 It supports several test URLs, as specified by the handlers in TestPageHandler. | 8 It supports several test URLs, as specified by the handlers in TestPageHandler. |
| 9 By default, it listens on an ephemeral port and sends the port number back to | 9 By default, it listens on an ephemeral port and sends the port number back to |
| 10 the originating process over a pipe. The originating process can specify an | 10 the originating process over a pipe. The originating process can specify an |
| (...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 self.AuthDigestHandler, | 371 self.AuthDigestHandler, |
| 372 self.SlowServerHandler, | 372 self.SlowServerHandler, |
| 373 self.ChunkedServerHandler, | 373 self.ChunkedServerHandler, |
| 374 self.ContentTypeHandler, | 374 self.ContentTypeHandler, |
| 375 self.NoContentHandler, | 375 self.NoContentHandler, |
| 376 self.ServerRedirectHandler, | 376 self.ServerRedirectHandler, |
| 377 self.ClientRedirectHandler, | 377 self.ClientRedirectHandler, |
| 378 self.MultipartHandler, | 378 self.MultipartHandler, |
| 379 self.MultipartSlowHandler, | 379 self.MultipartSlowHandler, |
| 380 self.GetSSLSessionCacheHandler, | 380 self.GetSSLSessionCacheHandler, |
| 381 self.CloseSocketHandler, |
| 381 self.DefaultResponseHandler] | 382 self.DefaultResponseHandler] |
| 382 post_handlers = [ | 383 post_handlers = [ |
| 383 self.EchoTitleHandler, | 384 self.EchoTitleHandler, |
| 384 self.EchoHandler, | 385 self.EchoHandler, |
| 385 self.DeviceManagementHandler, | 386 self.DeviceManagementHandler, |
| 386 self.PostOnlyFileHandler] + get_handlers | 387 self.PostOnlyFileHandler] + get_handlers |
| 387 put_handlers = [ | 388 put_handlers = [ |
| 388 self.EchoTitleHandler, | 389 self.EchoTitleHandler, |
| 389 self.EchoHandler] + get_handlers | 390 self.EchoHandler] + get_handlers |
| 390 head_handlers = [ | 391 head_handlers = [ |
| (...skipping 1029 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1420 self.send_header('Content-Type', 'text/plain') | 1421 self.send_header('Content-Type', 'text/plain') |
| 1421 self.end_headers() | 1422 self.end_headers() |
| 1422 try: | 1423 try: |
| 1423 for (action, sessionID) in self.server.session_cache.log: | 1424 for (action, sessionID) in self.server.session_cache.log: |
| 1424 self.wfile.write('%s\t%s\n' % (action, sessionID.encode('hex'))) | 1425 self.wfile.write('%s\t%s\n' % (action, sessionID.encode('hex'))) |
| 1425 except AttributeError, e: | 1426 except AttributeError, e: |
| 1426 self.wfile.write('Pass --https-record-resume in order to use' + | 1427 self.wfile.write('Pass --https-record-resume in order to use' + |
| 1427 ' this request') | 1428 ' this request') |
| 1428 return True | 1429 return True |
| 1429 | 1430 |
| 1431 def CloseSocketHandler(self): |
| 1432 """Closes the socket without sending anything.""" |
| 1433 |
| 1434 if not self._ShouldHandleRequest('/close-socket'): |
| 1435 return False |
| 1436 |
| 1437 self.wfile.close() |
| 1438 return True |
| 1439 |
| 1430 def DefaultResponseHandler(self): | 1440 def DefaultResponseHandler(self): |
| 1431 """This is the catch-all response handler for requests that aren't handled | 1441 """This is the catch-all response handler for requests that aren't handled |
| 1432 by one of the special handlers above. | 1442 by one of the special handlers above. |
| 1433 Note that we specify the content-length as without it the https connection | 1443 Note that we specify the content-length as without it the https connection |
| 1434 is not closed properly (and the browser keeps expecting data).""" | 1444 is not closed properly (and the browser keeps expecting data).""" |
| 1435 | 1445 |
| 1436 contents = "Default response given for path: " + self.path | 1446 contents = "Default response given for path: " + self.path |
| 1437 self.send_response(200) | 1447 self.send_response(200) |
| 1438 self.send_header('Content-Type', 'text/html') | 1448 self.send_header('Content-Type', 'text/html') |
| 1439 self.send_header('Content-Length', len(contents)) | 1449 self.send_header('Content-Length', len(contents)) |
| (...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2005 'random key if none is specified on the command ' | 2015 'random key if none is specified on the command ' |
| 2006 'line.') | 2016 'line.') |
| 2007 option_parser.add_option('', '--policy-user', default='user@example.com', | 2017 option_parser.add_option('', '--policy-user', default='user@example.com', |
| 2008 dest='policy_user', | 2018 dest='policy_user', |
| 2009 help='Specify the user name the server should ' | 2019 help='Specify the user name the server should ' |
| 2010 'report back to the client as the user owning the ' | 2020 'report back to the client as the user owning the ' |
| 2011 'token used for making the policy request.') | 2021 'token used for making the policy request.') |
| 2012 options, args = option_parser.parse_args() | 2022 options, args = option_parser.parse_args() |
| 2013 | 2023 |
| 2014 sys.exit(main(options, args)) | 2024 sys.exit(main(options, args)) |
| OLD | NEW |