mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-26 23:40:18 +00:00
Added resource window timeout recalculations during transfer.
This commit is contained in:
parent
83232f0446
commit
5629a062a5
@ -40,7 +40,10 @@ class Resource:
|
|||||||
#
|
#
|
||||||
# This constant will be used when determining
|
# This constant will be used when determining
|
||||||
# how to sequence the sending of large resources.
|
# how to sequence the sending of large resources.
|
||||||
MAX_EFFICIENT_SIZE = 16 * 1024 * 1024
|
#
|
||||||
|
# Capped at 16777215 (0xFFFFFF) per segment to
|
||||||
|
# fit in 3 bytes in resource advertisements.
|
||||||
|
MAX_EFFICIENT_SIZE = 16 * 1024 * 1024 - 1
|
||||||
RESPONSE_MAX_GRACE_TIME = 10
|
RESPONSE_MAX_GRACE_TIME = 10
|
||||||
|
|
||||||
# The maximum size to auto-compress with
|
# The maximum size to auto-compress with
|
||||||
@ -115,7 +118,6 @@ class Resource:
|
|||||||
resource.receiving_part = False
|
resource.receiving_part = False
|
||||||
|
|
||||||
resource.consecutive_completed_height = 0
|
resource.consecutive_completed_height = 0
|
||||||
resource.window_index = 0
|
|
||||||
|
|
||||||
resource.link.register_incoming_resource(resource)
|
resource.link.register_incoming_resource(resource)
|
||||||
|
|
||||||
@ -404,14 +406,13 @@ class Resource:
|
|||||||
sleep_time = self.last_activity + (rtt*(self.part_timeout_factor+window_remaining)) + Resource.RETRY_GRACE_TIME - time.time()
|
sleep_time = self.last_activity + (rtt*(self.part_timeout_factor+window_remaining)) + Resource.RETRY_GRACE_TIME - time.time()
|
||||||
|
|
||||||
# TODO: Remove debug info
|
# TODO: Remove debug info
|
||||||
RNS.log("rtt "+str(rtt))
|
# RNS.log("rtt "+str(rtt))
|
||||||
RNS.log("ptof "+str(self.part_timeout_factor))
|
# RNS.log("ptof "+str(self.part_timeout_factor))
|
||||||
RNS.log("wait "+str((rtt*self.part_timeout_factor) + Resource.RETRY_GRACE_TIME))
|
# RNS.log("wait "+str((rtt*self.part_timeout_factor) + Resource.RETRY_GRACE_TIME))
|
||||||
RNS.log("sleep "+str(sleep_time))
|
# RNS.log("sleep "+str(sleep_time))
|
||||||
RNS.log("wndw "+str(self.window))
|
# RNS.log("wndw "+str(self.window))
|
||||||
RNS.log("wndwi "+str(self.window_index))
|
# RNS.log("wndwr "+str(window_remaining))
|
||||||
RNS.log("wndwr "+str(window_remaining))
|
# RNS.log("")
|
||||||
RNS.log("")
|
|
||||||
|
|
||||||
if sleep_time < 0:
|
if sleep_time < 0:
|
||||||
if self.retries_left > 0:
|
if self.retries_left > 0:
|
||||||
@ -594,19 +595,18 @@ class Resource:
|
|||||||
self.consecutive_completed_height = cp
|
self.consecutive_completed_height = cp
|
||||||
cp += 1
|
cp += 1
|
||||||
|
|
||||||
|
if self.__progress_callback != None:
|
||||||
|
self.__progress_callback(self)
|
||||||
|
|
||||||
|
# TODO: Remove debug info
|
||||||
|
# RNS.log("outstanding_parts "+str(self.outstanding_parts))
|
||||||
|
# RNS.log("total_parts "+str(self.total_parts))
|
||||||
|
# RNS.log("received_count "+str(self.received_count))
|
||||||
|
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
self.window_index += 1
|
|
||||||
self.receiving_part = False
|
self.receiving_part = False
|
||||||
|
|
||||||
if self.__progress_callback != None:
|
|
||||||
self.__progress_callback(self)
|
|
||||||
|
|
||||||
# TODO: Remove debug info
|
|
||||||
RNS.log("outstanding_parts "+str(self.outstanding_parts))
|
|
||||||
RNS.log("total_parts "+str(self.total_parts))
|
|
||||||
RNS.log("received_count "+str(self.received_count))
|
|
||||||
|
|
||||||
# TODO: Remove
|
# TODO: Remove
|
||||||
#if self.outstanding_parts == 0 and self.received_count == self.total_parts:
|
#if self.outstanding_parts == 0 and self.received_count == self.total_parts:
|
||||||
if self.received_count == self.total_parts:
|
if self.received_count == self.total_parts:
|
||||||
@ -667,7 +667,6 @@ class Resource:
|
|||||||
self.last_activity = time.time()
|
self.last_activity = time.time()
|
||||||
self.req_sent = self.last_activity
|
self.req_sent = self.last_activity
|
||||||
self.req_resp = None
|
self.req_resp = None
|
||||||
self.window_index = 0
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
RNS.log("Could not send resource request packet, cancelling resource", RNS.LOG_DEBUG)
|
RNS.log("Could not send resource request packet, cancelling resource", RNS.LOG_DEBUG)
|
||||||
RNS.log("The contained exception was: "+str(e), RNS.LOG_DEBUG)
|
RNS.log("The contained exception was: "+str(e), RNS.LOG_DEBUG)
|
||||||
|
Loading…
Reference in New Issue
Block a user