fixed SSL not working with streaming

This commit is contained in:
Concedo 2024-02-16 17:04:07 +08:00
parent 7eccc5ffa6
commit e8e86ecf9f

View file

@ -1069,11 +1069,20 @@ Enter Prompt:<br>
def RunServerMultiThreaded(addr, port, embedded_kailite = None, embedded_kcpp_docs = None):
global exitcounter
global exitcounter, sslvalid
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
if args.ssl and sslvalid:
import ssl
certpath = os.path.abspath(args.ssl[0])
keypath = os.path.abspath(args.ssl[1])
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile=certpath, keyfile=keypath)
sock = context.wrap_socket(sock, server_side=True)
sock.bind((addr, port))
sock.listen(12)
numThreads = 12
sock.listen(numThreads)
class Thread(threading.Thread):
def __init__(self, i):
@ -1083,19 +1092,12 @@ def RunServerMultiThreaded(addr, port, embedded_kailite = None, embedded_kcpp_do
self.start()
def run(self):
global exitcounter, sslvalid
global exitcounter
handler = ServerRequestHandler(addr, port, embedded_kailite, embedded_kcpp_docs)
with http.server.HTTPServer((addr, port), handler, False) as self.httpd:
try:
self.httpd.socket = sock
self.httpd.server_bind = self.server_close = lambda self: None
if args.ssl and sslvalid:
import ssl
certpath = os.path.abspath(args.ssl[0])
keypath = os.path.abspath(args.ssl[1])
self.httpd.socket = ssl.wrap_socket(self.httpd.socket, keyfile=keypath, certfile=certpath, server_side=True)
self.httpd.serve_forever()
except (KeyboardInterrupt,SystemExit):
exitcounter = 999
@ -1110,7 +1112,6 @@ def RunServerMultiThreaded(addr, port, embedded_kailite = None, embedded_kcpp_do
exitcounter = 999
self.httpd.server_close()
numThreads = 12
threadArr = []
for i in range(numThreads):
threadArr.append(Thread(i))