]> jfr.im git - erebus.git/commitdiff
adding tls support, import ssl and wrap
authorJohn Runyon <redacted>
Thu, 15 Jun 2023 01:52:27 +0000 (19:52 -0600)
committerJohn Runyon <redacted>
Thu, 15 Jun 2023 01:52:27 +0000 (19:52 -0600)
bot.py

diff --git a/bot.py b/bot.py
index a42c9ab9235c9292c33e21c15124ee21acc6fb45..7713d836329e58bd58e6397fd74edcaac243c135 100644 (file)
--- a/bot.py
+++ b/bot.py
@@ -499,7 +499,13 @@ class BotConnection(object):
                self._nowrite = False
 
        def connect(self):
-               self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+               if self.parent.cfg.getboolean('erebus', 'tls'):
+                       import ssl
+                       undersocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+                       context = ssl.create_default_context()
+                       self.socket = context.wrap_socket(undersocket, self.server)
+               else:
+                       self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                self.socket.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) # Does Python make SOL_TCP portable? Who knows, it's not documented, and it appears to come from the _socket C lib.
                self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 0, 0))
                self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)