mirror of
https://github.com/markqvist/LXMF.git
synced 2025-06-05 13:08:54 -04:00
Added incoming resource transfer size limits
This commit is contained in:
parent
64050d39bf
commit
7ecd3c0d5e
2 changed files with 25 additions and 5 deletions
|
@ -32,7 +32,7 @@ class LXMRouter:
|
||||||
FASTEST_N_RANDOM_POOL = 2
|
FASTEST_N_RANDOM_POOL = 2
|
||||||
|
|
||||||
PROPAGATION_LIMIT = 256
|
PROPAGATION_LIMIT = 256
|
||||||
DELIVERY_LIMIT = 1024
|
DELIVERY_LIMIT = 1000
|
||||||
|
|
||||||
PR_PATH_TIMEOUT = 10
|
PR_PATH_TIMEOUT = 10
|
||||||
|
|
||||||
|
@ -970,7 +970,8 @@ class LXMRouter:
|
||||||
def delivery_link_established(self, link):
|
def delivery_link_established(self, link):
|
||||||
link.track_phy_stats(True)
|
link.track_phy_stats(True)
|
||||||
link.set_packet_callback(self.delivery_packet)
|
link.set_packet_callback(self.delivery_packet)
|
||||||
link.set_resource_strategy(RNS.Link.ACCEPT_ALL)
|
link.set_resource_strategy(RNS.Link.ACCEPT_APP)
|
||||||
|
link.set_resource_callback(self.delivery_resource_advertised)
|
||||||
link.set_resource_started_callback(self.resource_transfer_began)
|
link.set_resource_started_callback(self.resource_transfer_began)
|
||||||
link.set_resource_concluded_callback(self.delivery_resource_concluded)
|
link.set_resource_concluded_callback(self.delivery_resource_concluded)
|
||||||
|
|
||||||
|
@ -980,6 +981,15 @@ class LXMRouter:
|
||||||
def resource_transfer_began(self, resource):
|
def resource_transfer_began(self, resource):
|
||||||
RNS.log("Transfer began for LXMF delivery resource "+str(resource), RNS.LOG_DEBUG)
|
RNS.log("Transfer began for LXMF delivery resource "+str(resource), RNS.LOG_DEBUG)
|
||||||
|
|
||||||
|
def delivery_resource_advertised(self, resource):
|
||||||
|
size = resource.get_data_size()
|
||||||
|
limit = self.delivery_per_transfer_limit*1000
|
||||||
|
if limit != None and size > limit:
|
||||||
|
RNS.log("Rejecting "+RNS.prettysize(size)+" incoming LXMF delivery resource, since it exceeds the limit of "+RNS.prettysize(limit), RNS.LOG_DEBUG)
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
def delivery_resource_concluded(self, resource):
|
def delivery_resource_concluded(self, resource):
|
||||||
RNS.log("Transfer concluded for LXMF delivery resource "+str(resource), RNS.LOG_DEBUG)
|
RNS.log("Transfer concluded for LXMF delivery resource "+str(resource), RNS.LOG_DEBUG)
|
||||||
if resource.status == RNS.Resource.COMPLETE:
|
if resource.status == RNS.Resource.COMPLETE:
|
||||||
|
@ -1080,11 +1090,21 @@ class LXMRouter:
|
||||||
|
|
||||||
def propagation_link_established(self, link):
|
def propagation_link_established(self, link):
|
||||||
link.set_packet_callback(self.propagation_packet)
|
link.set_packet_callback(self.propagation_packet)
|
||||||
link.set_resource_strategy(RNS.Link.ACCEPT_ALL)
|
link.set_resource_strategy(RNS.Link.ACCEPT_APP)
|
||||||
|
link.set_resource_callback(self.propagation_resource_advertised)
|
||||||
link.set_resource_started_callback(self.resource_transfer_began)
|
link.set_resource_started_callback(self.resource_transfer_began)
|
||||||
link.set_resource_concluded_callback(self.propagation_resource_concluded)
|
link.set_resource_concluded_callback(self.propagation_resource_concluded)
|
||||||
self.active_propagation_links.append(link)
|
self.active_propagation_links.append(link)
|
||||||
|
|
||||||
|
def propagation_resource_advertised(self, resource):
|
||||||
|
size = resource.get_data_size()
|
||||||
|
limit = self.propagation_per_transfer_limit*1000
|
||||||
|
if limit != None and size > limit:
|
||||||
|
RNS.log("Rejecting "+RNS.prettysize(size)+" incoming LXMF propagation resource, since it exceeds the limit of "+RNS.prettysize(limit), RNS.LOG_DEBUG)
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
def propagation_packet(self, data, packet):
|
def propagation_packet(self, data, packet):
|
||||||
try:
|
try:
|
||||||
if packet.destination_type != RNS.Destination.LINK:
|
if packet.destination_type != RNS.Destination.LINK:
|
||||||
|
|
|
@ -83,7 +83,7 @@ def apply_config():
|
||||||
if active_configuration["delivery_transfer_max_accepted_size"] < 0.38:
|
if active_configuration["delivery_transfer_max_accepted_size"] < 0.38:
|
||||||
active_configuration["delivery_transfer_max_accepted_size"] = 0.38
|
active_configuration["delivery_transfer_max_accepted_size"] = 0.38
|
||||||
else:
|
else:
|
||||||
active_configuration["delivery_transfer_max_accepted_size"] = 1024
|
active_configuration["delivery_transfer_max_accepted_size"] = 1000
|
||||||
|
|
||||||
if "lxmf" in lxmd_config and "on_inbound" in lxmd_config["lxmf"]:
|
if "lxmf" in lxmd_config and "on_inbound" in lxmd_config["lxmf"]:
|
||||||
active_configuration["on_inbound"] = lxmd_config["lxmf"]["on_inbound"]
|
active_configuration["on_inbound"] = lxmd_config["lxmf"]["on_inbound"]
|
||||||
|
@ -526,7 +526,7 @@ announce_at_start = no
|
||||||
# this will be rejected before the transfer
|
# this will be rejected before the transfer
|
||||||
# begins.
|
# begins.
|
||||||
|
|
||||||
delivery_transfer_max_accepted_size = 1024
|
delivery_transfer_max_accepted_size = 1000
|
||||||
|
|
||||||
# You can configure an external program to be run
|
# You can configure an external program to be run
|
||||||
# every time a message is received. The program
|
# every time a message is received. The program
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue