3
0
mirror of https://github.com/jlu5/PyLink.git synced 2025-05-06 22:57:31 +02:00

relay: experimental fix for #183

This commit is contained in:
James Lu 2016-03-30 18:33:44 -07:00
parent 2169a9be28
commit d21344342d

View File

@ -237,7 +237,6 @@ def getRemoteSid(irc, remoteirc):
except ValueError: # Network not initialized yet. except ValueError: # Network not initialized yet.
log.exception('(%s) Failed to spawn server for %r:', log.exception('(%s) Failed to spawn server for %r:',
irc.name, remoteirc.name) irc.name, remoteirc.name)
irc.disconnect()
return return
else: else:
irc.servers[sid].remote = remoteirc.name irc.servers[sid].remote = remoteirc.name
@ -1178,6 +1177,7 @@ def handle_disconnect(irc, numeric, command, args):
"""Handles IRC network disconnections (internal hook).""" """Handles IRC network disconnections (internal hook)."""
# Quit all of our users' representations on other nets, and remove # Quit all of our users' representations on other nets, and remove
# them from our relay clients index. # them from our relay clients index.
with spawnlocks[irc.name]:
for k, v in relayusers.copy().items(): for k, v in relayusers.copy().items():
if irc.name in v: if irc.name in v:
del relayusers[k][irc.name] del relayusers[k][irc.name]
@ -1189,6 +1189,7 @@ def handle_disconnect(irc, numeric, command, args):
pass pass
# SQUIT all relay pseudoservers spawned for us, and remove them # SQUIT all relay pseudoservers spawned for us, and remove them
# from our relay subservers index. # from our relay subservers index.
with spawnlocks_servers[irc.name]:
for name, ircobj in world.networkobjects.copy().items(): for name, ircobj in world.networkobjects.copy().items():
if name != irc.name and ircobj.connected.is_set(): if name != irc.name and ircobj.connected.is_set():
try: try: