diff --git a/plugins/relay.py b/plugins/relay.py index abc971d..5f57968 100644 --- a/plugins/relay.py +++ b/plugins/relay.py @@ -374,7 +374,7 @@ def handle_kick(irc, source, command, args): if relay is None: return for name, remoteirc in utils.networkobjects.items(): - if irc.name == name: + if irc.name == name or not remoteirc.connected.is_set(): continue remotechan = findRemoteChan(irc, remoteirc, channel) log.debug('(%s) Relay kick: remotechan for %s on %s is %s', irc.name, channel, name, remotechan) @@ -578,7 +578,7 @@ def handle_mode(irc, numeric, command, args): target = args['target'] modes = args['modes'] for name, remoteirc in utils.networkobjects.items(): - if irc.name == name: + if irc.name == name or not remoteirc.connected.is_set(): continue if utils.isChannel(target): relayModes(irc, remoteirc, numeric, target, modes) @@ -595,7 +595,7 @@ def handle_topic(irc, numeric, command, args): channel = args['channel'] topic = args['topic'] for name, remoteirc in utils.networkobjects.items(): - if irc.name == name: + if irc.name == name or not remoteirc.connected.is_set(): continue remotechan = findRemoteChan(irc, remoteirc, channel) @@ -647,7 +647,7 @@ utils.add_hook(handle_kill, 'KILL') def relayJoins(irc, channel, users, ts, modes): for name, remoteirc in utils.networkobjects.items(): queued_users = [] - if name == irc.name: + if name == irc.name or not remoteirc.connected.is_set(): # Don't relay things to their source network... continue remotechan = findRemoteChan(irc, remoteirc, channel) @@ -688,7 +688,7 @@ def relayJoins(irc, channel, users, ts, modes): def relayPart(irc, channel, user): for name, remoteirc in utils.networkobjects.items(): - if name == irc.name: + if name == irc.name or not remoteirc.connected.is_set(): # Don't relay things to their source network... continue remotechan = findRemoteChan(irc, remoteirc, channel)