Fixed message stamps getting overwritten if propagation stamp was also present

This commit is contained in:
Mark Qvist 2025-11-03 22:19:20 +01:00
parent f18ce9ea99
commit fa2d78c351
2 changed files with 3 additions and 3 deletions

View file

@ -2424,7 +2424,7 @@ class LXMRouter:
selected_lxm.stamp = generated_stamp selected_lxm.stamp = generated_stamp
selected_lxm.defer_stamp = False selected_lxm.defer_stamp = False
selected_lxm.packed = None selected_lxm.packed = None
selected_lxm.pack() selected_lxm.pack(payload_updated=True)
stamp_generation_success = True stamp_generation_success = True
RNS.log(f"Stamp generation completed for {selected_lxm}", RNS.LOG_DEBUG) RNS.log(f"Stamp generation completed for {selected_lxm}", RNS.LOG_DEBUG)
else: else:

View file

@ -357,7 +357,7 @@ class LXMessage:
else: else:
return None return None
def pack(self): def pack(self, payload_updated=False):
if not self.packed: if not self.packed:
if self.timestamp == None: self.timestamp = time.time() if self.timestamp == None: self.timestamp = time.time()
@ -431,7 +431,7 @@ class LXMessage:
elif self.desired_method == LXMessage.PROPAGATED: elif self.desired_method == LXMessage.PROPAGATED:
single_packet_content_limit = LXMessage.LINK_PACKET_MAX_CONTENT single_packet_content_limit = LXMessage.LINK_PACKET_MAX_CONTENT
if self.__pn_encrypted_data == None: if self.__pn_encrypted_data == None or payload_updated:
self.__pn_encrypted_data = self.__destination.encrypt(self.packed[LXMessage.DESTINATION_LENGTH:]) self.__pn_encrypted_data = self.__destination.encrypt(self.packed[LXMessage.DESTINATION_LENGTH:])
self.ratchet_id = self.__destination.latest_ratchet_id self.ratchet_id = self.__destination.latest_ratchet_id