pygem/server.py

23 lines
937 B
Python

import ssl
import socketserver
class TLS_ThreadingTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
"""TCPServer wrapped in TLS and ThreadingMixIn"""
def __init__(self,
server_address,
RequestHandlerClass,
certfile,
keyfile,
bind_and_activate=True):
socketserver.TCPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate)
self.certfile = certfile
self.keyfile = keyfile
def get_request(self):
newsocket, fromaddr = self.socket.accept()
connstream = ssl.wrap_socket(newsocket,
server_side=True,
certfile=self.certfile,
keyfile=self.keyfile,
ssl_version = ssl.PROTOCOL_TLS_SERVER)
return connstream, fromaddr