Fixed incorrect behaviour in announce processing for instance-local destinations to roaming- or boundary-mode interfaces
This commit is contained in:
parent
9c8c143c62
commit
5b1b18e84a
@ -618,33 +618,43 @@ class Transport:
|
|||||||
should_transmit = False
|
should_transmit = False
|
||||||
|
|
||||||
elif interface.mode == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
elif interface.mode == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
||||||
from_interface = Transport.next_hop_interface(packet.destination_hash)
|
local_destination = next((d for d in Transport.destinations if d.hash == packet.destination_hash), None)
|
||||||
if from_interface == None or not hasattr(from_interface, "mode"):
|
if local_destination != None:
|
||||||
should_transmit = False
|
# RNS.log("Allowing announce broadcast on roaming-mode interface from instance-local destination", RNS.LOG_EXTREME)
|
||||||
if from_interface == None:
|
pass
|
||||||
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface doesn't exist", RNS.LOG_EXTREME)
|
|
||||||
elif not hasattr(from_interface, "mode"):
|
|
||||||
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface has no mode configured", RNS.LOG_EXTREME)
|
|
||||||
else:
|
else:
|
||||||
if from_interface.mode == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
from_interface = Transport.next_hop_interface(packet.destination_hash)
|
||||||
RNS.log("Blocking announce broadcast on "+str(interface)+" due to roaming-mode next-hop interface", RNS.LOG_EXTREME)
|
if from_interface == None or not hasattr(from_interface, "mode"):
|
||||||
should_transmit = False
|
|
||||||
elif from_interface.mode == RNS.Interfaces.Interface.Interface.MODE_BOUNDARY:
|
|
||||||
RNS.log("Blocking announce broadcast on "+str(interface)+" due to boundary-mode next-hop interface", RNS.LOG_EXTREME)
|
|
||||||
should_transmit = False
|
should_transmit = False
|
||||||
|
if from_interface == None:
|
||||||
|
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface doesn't exist", RNS.LOG_EXTREME)
|
||||||
|
elif not hasattr(from_interface, "mode"):
|
||||||
|
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface has no mode configured", RNS.LOG_EXTREME)
|
||||||
|
else:
|
||||||
|
if from_interface.mode == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
||||||
|
RNS.log("Blocking announce broadcast on "+str(interface)+" due to roaming-mode next-hop interface", RNS.LOG_EXTREME)
|
||||||
|
should_transmit = False
|
||||||
|
elif from_interface.mode == RNS.Interfaces.Interface.Interface.MODE_BOUNDARY:
|
||||||
|
RNS.log("Blocking announce broadcast on "+str(interface)+" due to boundary-mode next-hop interface", RNS.LOG_EXTREME)
|
||||||
|
should_transmit = False
|
||||||
|
|
||||||
elif interface.mode == RNS.Interfaces.Interface.Interface.MODE_BOUNDARY:
|
elif interface.mode == RNS.Interfaces.Interface.Interface.MODE_BOUNDARY:
|
||||||
from_interface = Transport.next_hop_interface(packet.destination_hash)
|
local_destination = next((d for d in Transport.destinations if d.hash == packet.destination_hash), None)
|
||||||
if from_interface == None or not hasattr(from_interface, "mode"):
|
if local_destination != None:
|
||||||
should_transmit = False
|
# RNS.log("Allowing announce broadcast on boundary-mode interface from instance-local destination", RNS.LOG_EXTREME)
|
||||||
if from_interface == None:
|
pass
|
||||||
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface doesn't exist", RNS.LOG_EXTREME)
|
|
||||||
elif not hasattr(from_interface, "mode"):
|
|
||||||
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface has no mode configured", RNS.LOG_EXTREME)
|
|
||||||
else:
|
else:
|
||||||
if from_interface.mode == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
from_interface = Transport.next_hop_interface(packet.destination_hash)
|
||||||
RNS.log("Blocking announce broadcast on "+str(interface)+" due to roaming-mode next-hop interface", RNS.LOG_EXTREME)
|
if from_interface == None or not hasattr(from_interface, "mode"):
|
||||||
should_transmit = False
|
should_transmit = False
|
||||||
|
if from_interface == None:
|
||||||
|
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface doesn't exist", RNS.LOG_EXTREME)
|
||||||
|
elif not hasattr(from_interface, "mode"):
|
||||||
|
RNS.log("Blocking announce broadcast on "+str(interface)+" since next hop interface has no mode configured", RNS.LOG_EXTREME)
|
||||||
|
else:
|
||||||
|
if from_interface.mode == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
||||||
|
RNS.log("Blocking announce broadcast on "+str(interface)+" due to roaming-mode next-hop interface", RNS.LOG_EXTREME)
|
||||||
|
should_transmit = False
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Currently, annouces originating locally are always
|
# Currently, annouces originating locally are always
|
||||||
|
Loading…
Reference in New Issue
Block a user