Added link mode get method to Link API
Some checks are pending
Build Reticulum / test (push) Waiting to run
Build Reticulum / package (push) Blocked by required conditions
Build Reticulum / release (push) Blocked by required conditions

This commit is contained in:
Mark Qvist 2025-05-06 19:09:40 +02:00
parent be821b6927
commit 378dc1e931

View file

@ -193,7 +193,7 @@ class Link:
link.mode = Link.mode_from_lr_packet(packet) link.mode = Link.mode_from_lr_packet(packet)
# TODO: Remove # TODO: Remove
RNS.log(f"Incoming link request with mode {Link.MODE_DESCRIPTIONS[link.mode]}") RNS.log(f"Incoming link request with mode {Link.MODE_DESCRIPTIONS[link.mode]}", RNS.LOG_DEBUG)
link.update_mdu() link.update_mdu()
link.destination = packet.destination link.destination = packet.destination
@ -305,8 +305,7 @@ class Link:
signalling_bytes = Link.signalling_bytes(nh_hw_mtu, self.mode) signalling_bytes = Link.signalling_bytes(nh_hw_mtu, self.mode)
RNS.log(f"Signalling link MTU of {RNS.prettysize(nh_hw_mtu)} for link", RNS.LOG_DEBUG) # TODO: Remove debug RNS.log(f"Signalling link MTU of {RNS.prettysize(nh_hw_mtu)} for link", RNS.LOG_DEBUG) # TODO: Remove debug
else: signalling_bytes = Link.signalling_bytes(RNS.Reticulum.MTU, self.mode) else: signalling_bytes = Link.signalling_bytes(RNS.Reticulum.MTU, self.mode)
# TODO: Remove RNS.log(f"Establishing link with mode {Link.MODE_DESCRIPTIONS[self.mode]}", RNS.LOG_DEBUG) # TODO: Remove debug
RNS.log(f"Establishing link with mode {Link.MODE_DESCRIPTIONS[self.mode]}")
self.request_data = self.pub_bytes+self.sig_pub_bytes+signalling_bytes self.request_data = self.pub_bytes+self.sig_pub_bytes+signalling_bytes
self.packet = RNS.Packet(destination, self.request_data, packet_type=RNS.Packet.LINKREQUEST) self.packet = RNS.Packet(destination, self.request_data, packet_type=RNS.Packet.LINKREQUEST)
self.packet.pack() self.packet.pack()
@ -393,8 +392,8 @@ class Link:
signalling_bytes = b"" signalling_bytes = b""
confirmed_mtu = None confirmed_mtu = None
mode = Link.mode_from_lp_packet(packet) mode = Link.mode_from_lp_packet(packet)
# TODO: Remove RNS.log(f"Validating link request proof with mode {Link.MODE_DESCRIPTIONS[mode]}", RNS.LOG_DEBUG) # TODO: Remove debug
RNS.log(f"Validating link proof with mode {Link.MODE_DESCRIPTIONS[mode]}") if mode != self.mode: raise TypeError(f"Invalid link mode {mode} in link request proof")
if len(packet.data) == RNS.Identity.SIGLENGTH//8+Link.ECPUBSIZE//2+Link.LINK_MTU_SIZE: if len(packet.data) == RNS.Identity.SIGLENGTH//8+Link.ECPUBSIZE//2+Link.LINK_MTU_SIZE:
confirmed_mtu = Link.mtu_from_lp_packet(packet) confirmed_mtu = Link.mtu_from_lp_packet(packet)
signalling_bytes = Link.signalling_bytes(confirmed_mtu, mode) signalling_bytes = Link.signalling_bytes(confirmed_mtu, mode)
@ -623,6 +622,12 @@ class Link:
else: else:
return None return None
def get_mode(self):
"""
:returns: The mode of an established link.
"""
return self.mode
def get_salt(self): def get_salt(self):
return self.link_id return self.link_id