home · contact · privacy
De-hardcode cert and key file for PlomSocketSSL.
[plomrogue2-experiments] / new2 / plomrogue / io_tcp.py
index 78e43f539df4aea810a15c3abe61366d807c4993..5dd2508a8708d5cca43836aceb396d9231ed1d0a 100644 (file)
@@ -102,14 +102,12 @@ class PlomSocket:
 
 class PlomSocketSSL(PlomSocket):
 
-    def __init__(self, *args, server_side=False, **kwargs):
+    def __init__(self, *args, server_side=False, certfile=None, keyfile=None, **kwargs):
         import ssl
-        print('DEBUG', args, kwargs)
         super().__init__(*args, **kwargs)
         if server_side:
             self.socket = ssl.wrap_socket(self.socket, server_side=True,
-                                          certfile="server.pem",
-                                          keyfile="key.pem")
+                                          certfile=certfile, keyfile=keyfile)
         else:
             self.socket = ssl.wrap_socket(self.socket)
 
@@ -150,7 +148,9 @@ class IO_Handler(socketserver.BaseRequestHandler):
         import queue
         import threading
         if self.socket_class == PlomSocketSSL:
-            plom_socket = self.socket_class(self.request, server_side=True)
+            plom_socket = self.socket_class(self.request, server_side=True,
+                                            certfile=self.server.certfile,
+                                            keyfile=self.server.keyfile)
         else:
             plom_socket = self.socket_class(self.request)
         print('CONNECTION FROM:', str(self.client_address))
@@ -202,5 +202,7 @@ class PlomTCPServer(socketserver.ThreadingTCPServer):
 
 class PlomTCPServerSSL(PlomTCPServer):
 
-    def __init__(self, *args, **kwargs):
+    def __init__(self, *args, certfile=None, keyfile=None, **kwargs):
+        self.certfile = certfile
+        self.keyfile = keyfile
         super().__init__(*args, host='0.0.0.0', io_handler=IO_HandlerSSL, **kwargs)