Implement relay-independent join

This commit is contained in:
Mark Veidemanis 2020-11-02 20:14:02 +00:00
parent 5deb0649fb
commit 08b5dc06f0
2 changed files with 20 additions and 1 deletions

View File

@ -1,4 +1,5 @@
import main
import modules.chankeep
class JoinCommand:
def __init__(self, *args):
@ -6,7 +7,14 @@ class JoinCommand:
def join(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
if authed:
if length == 4:
if length == 3:
if not spl[1] in main.network.keys():
failure("Network does not exist: %s" % spl[1])
return
modules.chankeep.joinSingle(spl[1], spl[2])
success("Joined %s" % spl[2])
elif length == 4:
if not spl[1] in main.network.keys():
failure("Network does not exist: %s" % spl[1])
return

View File

@ -111,6 +111,17 @@ def keepChannels(net, listinfo, mean, sigrelay, relay):
populateChans(net, siglist, sigrelay, newNums)
notifyJoin(net)
def joinSingle(net, channel):
if allRelaysActive(net):
chanfree = getChanFree(net, [])
print("chanfree", chanfree)
for i in chanfree[0]:
if chanfree[0][i] < 0:
print("JOIN CHAN")
else:
error("All relays for %s are not active" % net)
return False
def nukeNetwork(net):
#purgeRecords(net)
#p = main.g.pipeline()