| Index: net/tools/testserver/testserver.py
|
| diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
|
| index 4870408f7ebf8965273fabb0dca85b497e436e14..c21153c6aec6ba2fe6016f8a7019c7cc77dbe96b 100755
|
| --- a/net/tools/testserver/testserver.py
|
| +++ b/net/tools/testserver/testserver.py
|
| @@ -84,10 +84,10 @@ class WebSocketOptions:
|
| self.allow_draft75 = False
|
| self.strict = True
|
|
|
| - # TODO(toyoshim): Support SSL and authenticates (http://crbug.com/137639)
|
| self.use_tls = False
|
| self.private_key = None
|
| self.certificate = None
|
| + self.tls_client_auth = False
|
| self.tls_client_ca = None
|
| self.use_basic_auth = False
|
|
|
| @@ -2252,7 +2252,22 @@ def main(options, args):
|
| # TODO(toyoshim): Remove following os.chdir. Currently this operation
|
| # is required to work correctly. It should be fixed from pywebsocket side.
|
| os.chdir(MakeDataDir())
|
| - server = WebSocketServer(WebSocketOptions(host, port, '.'))
|
| + websocket_options = WebSocketOptions(host, port, '.')
|
| + if options.cert_and_key_file:
|
| + websocket_options.use_tls = True
|
| + websocket_options.private_key = options.cert_and_key_file
|
| + websocket_options.certificate = options.cert_and_key_file
|
| + if options.ssl_client_auth:
|
| + websocket_options.tls_client_auth = True
|
| + if len(options.ssl_client_ca) != 1:
|
| + print 'one trusted client CA file should be specified'
|
| + return
|
| + if not os.path.isfile(options.ssl_client_ca[0]):
|
| + print 'specified trusted client CA file not found: ' + \
|
| + options.ssl_client_ca[0] + ' exiting...'
|
| + return
|
| + websocket_options.tls_client_ca = options.ssl_client_ca[0]
|
| + server = WebSocketServer(websocket_options)
|
| print 'WebSocket server started on %s:%d...' % (host, server.server_port)
|
| server_data['port'] = server.server_port
|
| elif options.server_type == SERVER_SYNC:
|
|
|