mirror of
https://github.com/markqvist/LXMF.git
synced 2025-01-26 14:15:56 -05:00
Failed outbound message handling
This commit is contained in:
parent
e069713226
commit
b9ac841c65
20
LXMF/LXMF.py
20
LXMF/LXMF.py
@ -123,7 +123,7 @@ class LXMessage:
|
|||||||
self.resource_representation = None
|
self.resource_representation = None
|
||||||
self.__delivery_destination = None
|
self.__delivery_destination = None
|
||||||
self.__delivery_callback = None
|
self.__delivery_callback = None
|
||||||
self.__failed_callback = None
|
self.failed_callback = None
|
||||||
|
|
||||||
def set_title_from_string(self, title_string):
|
def set_title_from_string(self, title_string):
|
||||||
self.title = title_string.encode("utf-8")
|
self.title = title_string.encode("utf-8")
|
||||||
@ -183,7 +183,7 @@ class LXMessage:
|
|||||||
self.__delivery_callback = callback
|
self.__delivery_callback = callback
|
||||||
|
|
||||||
def register_failed_callback(self, callback):
|
def register_failed_callback(self, callback):
|
||||||
self.__failed_callback = callback
|
self.failed_callback = callback
|
||||||
|
|
||||||
def pack(self):
|
def pack(self):
|
||||||
if not self.packed:
|
if not self.packed:
|
||||||
@ -263,13 +263,6 @@ class LXMessage:
|
|||||||
if self.__delivery_callback != None:
|
if self.__delivery_callback != None:
|
||||||
self.__delivery_callback(self)
|
self.__delivery_callback(self)
|
||||||
|
|
||||||
def _LXMRouter__mark_failed(self, receipt = None):
|
|
||||||
RNS.log(str(self)+" failed to send", RNS.LOG_DEBUG)
|
|
||||||
self.state = LXMessage.FAILED
|
|
||||||
|
|
||||||
if self.__failed_callback != None:
|
|
||||||
self.__failed_callback(self)
|
|
||||||
|
|
||||||
def __resource_concluded(self, resource):
|
def __resource_concluded(self, resource):
|
||||||
if resource.status == RNS.Resource.COMPLETE:
|
if resource.status == RNS.Resource.COMPLETE:
|
||||||
self.__mark_delivered()
|
self.__mark_delivered()
|
||||||
@ -449,6 +442,7 @@ class LXMRouter:
|
|||||||
delivery_destination.announce(delivery_destination.display_name.encode("utf-8"))
|
delivery_destination.announce(delivery_destination.display_name.encode("utf-8"))
|
||||||
|
|
||||||
def handle_outbound(self, lxmessage):
|
def handle_outbound(self, lxmessage):
|
||||||
|
lxmessage.state = LXMessage.OUTBOUND
|
||||||
if not lxmessage.packed:
|
if not lxmessage.packed:
|
||||||
lxmessage.pack()
|
lxmessage.pack()
|
||||||
|
|
||||||
@ -535,7 +529,6 @@ class LXMRouter:
|
|||||||
def clean_links(self):
|
def clean_links(self):
|
||||||
closed_links = []
|
closed_links = []
|
||||||
for link_hash in self.direct_links:
|
for link_hash in self.direct_links:
|
||||||
#TODO: Fix
|
|
||||||
link = self.direct_links[link_hash]
|
link = self.direct_links[link_hash]
|
||||||
inactive_time = link.inactive_for()
|
inactive_time = link.inactive_for()
|
||||||
|
|
||||||
@ -549,9 +542,14 @@ class LXMRouter:
|
|||||||
RNS.log("Removed "+RNS.hexrep(link_hash, delimit=False)+" from direct link list, since it was closed")
|
RNS.log("Removed "+RNS.hexrep(link_hash, delimit=False)+" from direct link list, since it was closed")
|
||||||
|
|
||||||
def fail_message(self, lxmessage):
|
def fail_message(self, lxmessage):
|
||||||
|
RNS.log(str(lxmessage)+" failed to send", RNS.LOG_DEBUG)
|
||||||
|
|
||||||
self.pending_outbound.remove(lxmessage)
|
self.pending_outbound.remove(lxmessage)
|
||||||
self.failed_outbound.append(lxmessage)
|
self.failed_outbound.append(lxmessage)
|
||||||
lxmessage.__mark_failed()
|
|
||||||
|
lxmessage.state = LXMessage.FAILED
|
||||||
|
if lxmessage.failed_callback != None:
|
||||||
|
lxmessage.failed_callback(lxmessage)
|
||||||
|
|
||||||
def process_outbound(self, sender = None):
|
def process_outbound(self, sender = None):
|
||||||
if self.processing_outbound:
|
if self.processing_outbound:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user