Skip to content

Commit cfbf20d

Browse files
author
prologic
committed
Try to reconnect if there was an error connecting
1 parent 7d127a9 commit cfbf20d

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

irclogger/main.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from socket import gethostname
1212
from optparse import OptionParser
1313
from collections import defaultdict
14+
from socket import error as SocketError
1415
from re import compile as compile_regex
1516
from datetime import date, datetime, timedelta
1617
from os import environ, getcwd, makedirs, path
@@ -160,7 +161,8 @@ def init(self, host, port=6667, opts=None):
160161
Debugger(events=opts.verbose).register(self)
161162

162163
# Add TCPClient and IRC to the system.
163-
self += (TCPClient(channel=self.channel) + IRC(channel=self.channel))
164+
self.transport = TCPClient(channel=self.channel).register(self)
165+
self.protocol = IRC(channel=self.channel).register(self)
164166

165167
# Logger(s)
166168
for ircchannel in self.ircchannels:
@@ -188,6 +190,11 @@ def ready(self, component):
188190
def keep_alive(self):
189191
self.fire(Write(b"\x00"))
190192

193+
def error(self, etype, evalue, etraceback, handler=None):
194+
if isinstance(evalue, SocketError):
195+
if not self.transport.connected:
196+
Timer(5, Connect(self.host, self.port)).register(self)
197+
191198
def connected(self, host, port):
192199
"""Connected Event
193200

0 commit comments

Comments
 (0)