mirror of
https://github.com/markqvist/LXMF.git
synced 2025-02-05 01:45:30 -05:00
Added max messages per sync option
This commit is contained in:
parent
937ae70a85
commit
25bcba84d2
39
LXMF/LXMF.py
39
LXMF/LXMF.py
@ -625,19 +625,26 @@ class LXMPeer:
|
|||||||
self.destination = RNS.Destination(self.identity, RNS.Destination.OUT, RNS.Destination.SINGLE, APP_NAME, "propagation")
|
self.destination = RNS.Destination(self.identity, RNS.Destination.OUT, RNS.Destination.SINGLE, APP_NAME, "propagation")
|
||||||
|
|
||||||
def sync(self, initiator=True):
|
def sync(self, initiator=True):
|
||||||
if len(self.unhandled_messages) > 0:
|
if self.identity == None:
|
||||||
if self.state == LXMPeer.IDLE:
|
self.identity = RNS.Identity.recall(destination_hash)
|
||||||
self.link = RNS.Link(self.destination, established_callback = self.link_established, closed_callback = self.link_closed)
|
self.destination = RNS.Destination(self.identity, RNS.Destination.OUT, RNS.Destination.SINGLE, APP_NAME, "propagation")
|
||||||
self.state = LXMPeer.LINK_ESTABLISHING
|
|
||||||
else:
|
|
||||||
if self.state == LXMPeer.LINK_READY:
|
|
||||||
unhandled_ids = []
|
|
||||||
for transient_id in self.unhandled_messages:
|
|
||||||
unhandled_ids.append(transient_id)
|
|
||||||
|
|
||||||
RNS.log("Sending sync request to peer "+str(self.destination), RNS.LOG_DEBUG)
|
if self.identity != None:
|
||||||
self.link.request(LXMPeer.OFFER_REQUEST_PATH, unhandled_ids, response_callback=self.offer_response, failed_callback=self.request_failed)
|
if len(self.unhandled_messages) > 0:
|
||||||
self.state = LXMPeer.REQUEST_SENT
|
if self.state == LXMPeer.IDLE:
|
||||||
|
self.link = RNS.Link(self.destination, established_callback = self.link_established, closed_callback = self.link_closed)
|
||||||
|
self.state = LXMPeer.LINK_ESTABLISHING
|
||||||
|
else:
|
||||||
|
if self.state == LXMPeer.LINK_READY:
|
||||||
|
unhandled_ids = []
|
||||||
|
for transient_id in self.unhandled_messages:
|
||||||
|
unhandled_ids.append(transient_id)
|
||||||
|
|
||||||
|
RNS.log("Sending sync request to peer "+str(self.destination), RNS.LOG_DEBUG)
|
||||||
|
self.link.request(LXMPeer.OFFER_REQUEST_PATH, unhandled_ids, response_callback=self.offer_response, failed_callback=self.request_failed)
|
||||||
|
self.state = LXMPeer.REQUEST_SENT
|
||||||
|
else:
|
||||||
|
RNS.log("Could not request sync to peer "+RNS.prettyhexrep(self.destination_hash)+" since its identity could not be recalled.", RNS.LOG_ERROR)
|
||||||
|
|
||||||
def request_failed(self, request_receipt):
|
def request_failed(self, request_receipt):
|
||||||
RNS.log("Sync request to peer "+str(self.destination)+" failed", RNS.LOG_DEBUG)
|
RNS.log("Sync request to peer "+str(self.destination)+" failed", RNS.LOG_DEBUG)
|
||||||
@ -799,6 +806,7 @@ class LXMRouter:
|
|||||||
self.propagation_transfer_state = LXMRouter.PR_IDLE
|
self.propagation_transfer_state = LXMRouter.PR_IDLE
|
||||||
self.propagation_transfer_progress = 0.0
|
self.propagation_transfer_progress = 0.0
|
||||||
self.propagation_transfer_last_result = None
|
self.propagation_transfer_last_result = None
|
||||||
|
self.propagation_transfer_max_messages = None
|
||||||
self.locally_delivered_transient_ids = {}
|
self.locally_delivered_transient_ids = {}
|
||||||
|
|
||||||
if identity == None:
|
if identity == None:
|
||||||
@ -908,6 +916,10 @@ class LXMRouter:
|
|||||||
self.wants_download_on_path_available_to = None
|
self.wants_download_on_path_available_to = None
|
||||||
|
|
||||||
def request_messages_from_propagation_node(self, identity, max_messages = PR_ALL_MESSAGES):
|
def request_messages_from_propagation_node(self, identity, max_messages = PR_ALL_MESSAGES):
|
||||||
|
if max_messages == None:
|
||||||
|
max_messages = LXMRouter.PR_ALL_MESSAGES
|
||||||
|
|
||||||
|
self.propagation_transfer_max_messages = max_messages
|
||||||
if self.outbound_propagation_node != None:
|
if self.outbound_propagation_node != None:
|
||||||
self.propagation_transfer_progress = 0.0
|
self.propagation_transfer_progress = 0.0
|
||||||
if self.outbound_propagation_link != None and self.outbound_propagation_link.status == RNS.Link.ACTIVE:
|
if self.outbound_propagation_link != None and self.outbound_propagation_link.status == RNS.Link.ACTIVE:
|
||||||
@ -987,7 +999,8 @@ class LXMRouter:
|
|||||||
if self.has_message(transient_id):
|
if self.has_message(transient_id):
|
||||||
haves.append(transient_id)
|
haves.append(transient_id)
|
||||||
else:
|
else:
|
||||||
wants.append(transient_id)
|
if self.propagation_transfer_max_messages == LXMRouter.PR_ALL_MESSAGES or len(wants) < self.propagation_transfer_max_messages:
|
||||||
|
wants.append(transient_id)
|
||||||
|
|
||||||
request_receipt.link.request(
|
request_receipt.link.request(
|
||||||
LXMPeer.MESSAGE_GET_PATH,
|
LXMPeer.MESSAGE_GET_PATH,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user