aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2019-02-06 18:11:19 +0000
committerGravatar jesopo2019-02-06 18:11:19 +0000
commit1895ac34d7ea36adec939137f0515bde582bbcb4 (patch)
tree9185b25656d2d6b3ead5f1c8859d91a160706ad5 /src
parentLog a WARN when we get a 904 (failed sasl) (diff)
signature
If a server has a hostname that's not an IP, use it as SNI server name
Diffstat (limited to 'src')
-rw-r--r--src/IRCServer.py7
-rw-r--r--src/utils/__init__.py9
2 files changed, 14 insertions, 2 deletions
diff --git a/src/IRCServer.py b/src/IRCServer.py
index 65beb09b..631092dc 100644
--- a/src/IRCServer.py
+++ b/src/IRCServer.py
@@ -97,7 +97,12 @@ class Server(IRCObject.Object):
if client_certificate and client_key:
context.load_cert_chain(client_certificate, keyfile=client_key)
- self.socket = context.wrap_socket(self.socket)
+ server_hostname = None
+ if not utils.is_ip(self.connection_params.hostname):
+ server_hostname = self.connection_params.hostname
+
+ self.socket = context.wrap_socket(self.socket,
+ server_hostname=server_hostname)
def connect(self):
ipv4 = self.connection_params.ipv4
diff --git a/src/utils/__init__.py b/src/utils/__init__.py
index 5267b79f..d76f020f 100644
--- a/src/utils/__init__.py
+++ b/src/utils/__init__.py
@@ -1,4 +1,4 @@
-import decimal, io, re, typing
+import decimal, io, ipaddress, re, typing
from src.utils import cli, consts, irc, http, parse
TIME_SECOND = 1
@@ -179,3 +179,10 @@ class CaseInsensitiveDict(dict):
return dict.__getitem__(self, key.lower())
def __setitem__(self, key: str, value: typing.Any) -> typing.Any:
return dict.__setitem__(self, key.lower(), value)
+
+def is_ip(s: str) -> bool:
+ try:
+ ipaddress.ip_address(s)
+ except ValueError:
+ return False
+ return True