|
@@ -228,6 +228,12 @@ class Relay(network.Server):
|
|
|
to the peer."""
|
|
|
|
|
|
# Create the linked pair
|
|
|
+ if peer is self.netaddr:
|
|
|
+ # A self-loop? We'll allow it.
|
|
|
+ peerchannel = Channel()
|
|
|
+ peerchannel.peer = peerchannel
|
|
|
+ return peerchannel
|
|
|
+
|
|
|
peerchannel = Channel()
|
|
|
ourchannel = Channel()
|
|
|
peerchannel.peer = ourchannel
|
|
@@ -275,9 +281,17 @@ if __name__ == '__main__':
|
|
|
|
|
|
relays[3].cellrelay.send_msg(RelayRandomHopMsg(30), relays[5].netaddr)
|
|
|
|
|
|
- # See what channels exist
|
|
|
+ # See what channels exist and do a consistency check
|
|
|
for r in relays:
|
|
|
print("%s: %s" % (r.netaddr, [ str(k) for k in r.cellrelay.channels.keys()]))
|
|
|
+ raddr = r.netaddr
|
|
|
+ for ad, ch in r.cellrelay.channels.items():
|
|
|
+ if ch.peer.cellrelay.myaddr != ad:
|
|
|
+ print('address mismatch:', raddr, ad, ch.peer.cellrelay.myaddr)
|
|
|
+
|
|
|
+ if ch.peer.cellrelay.channels[raddr].peer is not ch:
|
|
|
+ print('asymmetry:', raddr, ad, ch, ch.peer.cellrelay.channels[raddr].peer)
|
|
|
+
|
|
|
#relays[3].cellrelay.send_cell(1, network.StringNetMsg("test"), relays[3].consensus.consdict['relays'][5].descdict['addr'])
|
|
|
#relays[3].cellrelay.send_cell(2, network.StringNetMsg("cell"), relays[3].consensus.consdict['relays'][6].descdict['addr'])
|
|
|
#relays[3].cellrelay.send_cell(2, network.StringNetMsg("again"), relays[3].consensus.consdict['relays'][1].descdict['addr'])
|