diff --git a/modules/servers.py b/modules/servers.py index 8b6103d..23c13fa 100644 --- a/modules/servers.py +++ b/modules/servers.py @@ -3,9 +3,10 @@ import ssl global serverThread class serverThread(threading.Thread): - def __init__(self,socket): + def __init__(self,socket,isHttps): threading.Thread.__init__(self) self.socket = socket + self.isHttps = isHttps def run(self): connection = False @@ -17,6 +18,9 @@ class serverThread(threading.Thread): continue try: + if self.isHttps: + connection.settimeout(5) + connection.do_handshake() connection.settimeout(timeout) if not triggerEvent("onConnection",connection,address): raise excConnectionClosed except Exception as e: @@ -31,15 +35,22 @@ def makeServer(host,port,https): print("Opening " +str(host)+ ":" +str(port)+ " (" +str(https)+ ") ...") serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serverSocket.bind((host,port)) - serverSocket.settimeout(5) if https: - serverSocket = ssl.wrap_socket( + proto = False + if sys.version_info >= (3,10): + proto = ssl.PROTOCOL_TLS_SERVER + else: + proto = ssl.PROTOCOL_TLS + + ctx = ssl.SSLContext(proto) + ctx.check_hostname = False + ctx.load_cert_chain(https) + serverSocket = ctx.wrap_socket( serverSocket, server_side = True, - certfile = https, - ssl_version = ssl.PROTOCOL_TLS + do_handshake_on_connect = False ) serverSocket.listen(65535) - thread = serverThread(serverSocket) + thread = serverThread(serverSocket,not (https == False)) serverThreads.append(thread) thread.start() \ No newline at end of file