diff --git a/oyoyo/client.py b/oyoyo/client.py index c550456..2ad431c 100644 --- a/oyoyo/client.py +++ b/oyoyo/client.py @@ -21,6 +21,7 @@ import sys import threading import time import traceback +import os from oyoyo.parse import parse_raw_irc_command @@ -99,7 +100,7 @@ class IRCClient(object): To enable blocking pass blocking=True. """ - self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.socket = None self.nickname = "" self.hostmask = "" self.ident = "" @@ -177,13 +178,14 @@ class IRCClient(object): retries = 0 while True: try: - self.socket.connect(("{0}".format(self.host), self.port)) + self.socket = socket.create_connection(("{0}".format(self.host), self.port)) break except socket.error as e: retries += 1 self.stream_handler('Error: {0}'.format(e), level="warning") if retries > 3: - break + exit(os.EX_UNAVAILABLE) + if not self.blocking: self.socket.setblocking(0)