Added ability to cancel outbound messages

This commit is contained in:
Mark Qvist 2025-01-18 19:13:43 +01:00
commit a676954116
2 changed files with 53 additions and 15 deletions

View file

@ -16,8 +16,9 @@ class LXMessage:
SENDING = 0x02
SENT = 0x04
DELIVERED = 0x08
CANCELLED = 0xFE
FAILED = 0xFF
states = [GENERATING, OUTBOUND, SENDING, SENT, DELIVERED, FAILED]
states = [GENERATING, OUTBOUND, SENDING, SENT, DELIVERED, CANCELLED, FAILED]
UNKNOWN = 0x00
PACKET = 0x01
@ -564,22 +565,24 @@ class LXMessage:
if resource.status == RNS.Resource.COMPLETE:
self.__mark_delivered()
else:
resource.link.teardown()
self.state = LXMessage.OUTBOUND
if self.state != LXMessage.CANCELLED:
resource.link.teardown()
self.state = LXMessage.OUTBOUND
def __propagation_resource_concluded(self, resource):
if resource.status == RNS.Resource.COMPLETE:
self.__mark_propagated()
else:
resource.link.teardown()
self.state = LXMessage.OUTBOUND
if self.state != LXMessage.CANCELLED:
resource.link.teardown()
self.state = LXMessage.OUTBOUND
def __link_packet_timed_out(self, packet_receipt):
if packet_receipt:
packet_receipt.destination.teardown()
self.state = LXMessage.OUTBOUND
if self.state != LXMessage.CANCELLED:
if packet_receipt:
packet_receipt.destination.teardown()
self.state = LXMessage.OUTBOUND
def __update_transfer_progress(self, resource):
self.progress = 0.10 + (resource.get_progress()*0.90)