Swap to gevent to prep for ws4py
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user