def __init__(self, addr, port, key, cert, request_handler_class):
self._addr = addr
self._port = port
self._key = key
self._cert = cert
self._handler = request_handler_class
SocketServer.BaseServer.__init__(self, (addr, port), request_handler_class)
ctx = SSL.Context(SSL.SSLv23_METHOD)
#ctx = SSL.Context(SSL.TLSv1_2_METHOD)
ctx.set_options(SSL.OP_NO_SSLv2)
ctx.use_privatekey_file(key)
ctx.use_certificate_file(cert)
def cb_ALPN(conn, protos):
print "ALPN CALLBACK"
return b'h2'
ctx.set_alpn_select_callback(cb_ALPN)
def cb_NPN(conn, protos):
print "NPN CALLBACK"
return b'h2'
ctx.set_npn_select_callback(cb_NPN)
#Must be .socket
self.socket = SSLWrapper(SSL.Connection(ctx, socket.socket(self.address_family, self.socket_type)))
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.server_bind()
self.server_activate()
评论列表
文章目录