Swap to gevent to prep for ws4py

This commit is contained in:
Ian Gulliver
2016-05-03 13:38:58 -07:00
parent 1767b93988
commit 26e533c195

View File

@@ -1,9 +1,7 @@
#!/usr/bin/python3 #!/usr/bin/python3
import argparse import argparse
import json from gevent import pywsgi
from http import server
import socket
import ssl import ssl
@@ -37,33 +35,26 @@ parser.add_argument(
FLAGS = parser.parse_args() FLAGS = parser.parse_args()
class HTTPServer6(server.HTTPServer):
address_family = socket.AF_INET6
class CertServer(object): class CertServer(object):
def __init__(self, listen_host, listen_port, server_key, server_cert, ca_cert): def __init__(self, listen_host, listen_port, server_key, server_cert, ca_cert):
class RequestHandler(server.BaseHTTPRequestHandler): def HandleRequest(env, start_response):
def do_POST(self): print(env)
print('Request from: [%s]:%d' % (self.client_address[0], self.client_address[1])) return
peer_cert = json.dumps(dict(x[0] for x in self.request.getpeercert()['subject']), sort_keys=True) print('Request from: [%s]:%d' % (self.client_address[0], self.client_address[1]))
print('Client cert:\n\t%s' % peer_cert.replace('\n', '\n\t')) peer_cert = json.dumps(dict(x[0] for x in self.request.getpeercert()['subject']), sort_keys=True)
size = int(self.headers['Content-Length']) print('Client cert:\n\t%s' % peer_cert.replace('\n', '\n\t'))
size = int(self.headers['Content-Length'])
# XXX self._httpd = pywsgi.WSGIServer(
(listen_host, listen_port),
self._httpd = HTTPServer6((listen_host, listen_port), RequestHandler) HandleRequest,
self._httpd.socket = ssl.wrap_socket(
self._httpd.socket,
keyfile=server_key, keyfile=server_key,
certfile=server_cert, certfile=server_cert,
ca_certs=ca_cert, ca_certs=ca_cert,
server_side=True,
cert_reqs=ssl.CERT_REQUIRED, cert_reqs=ssl.CERT_REQUIRED,
ssl_version=ssl.PROTOCOL_TLSv1_2) ssl_version=ssl.PROTOCOL_TLSv1_2)
self._httpd.socket.settimeout(5.0)
def Serve(self): def Serve(self):
self._httpd.serve_forever() self._httpd.serve_forever()