mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-26 15:30:18 +00:00
Limit amount of random blobs kept in memory and persisted to disk. Add check for non-existent announce in processing table.
This commit is contained in:
parent
05e97ac0db
commit
18f50ff1ae
@ -77,6 +77,8 @@ class Transport:
|
|||||||
DESTINATION_TIMEOUT = 60*60*24*7 # Destination table entries are removed if unused for one week
|
DESTINATION_TIMEOUT = 60*60*24*7 # Destination table entries are removed if unused for one week
|
||||||
MAX_RECEIPTS = 1024 # Maximum number of receipts to keep track of
|
MAX_RECEIPTS = 1024 # Maximum number of receipts to keep track of
|
||||||
MAX_RATE_TIMESTAMPS = 16 # Maximum number of announce timestamps to keep per destination
|
MAX_RATE_TIMESTAMPS = 16 # Maximum number of announce timestamps to keep per destination
|
||||||
|
PERSIST_RANDOM_BLOBS = 32 # Maximum number of random blobs per destination to persist to disk
|
||||||
|
MAX_RANDOM_BLOBS = 64 # Maximum number of random blobs per destination to keep in memory
|
||||||
|
|
||||||
interfaces = [] # All active interfaces
|
interfaces = [] # All active interfaces
|
||||||
destinations = [] # All active destinations
|
destinations = [] # All active destinations
|
||||||
@ -1321,7 +1323,8 @@ class Transport:
|
|||||||
announce_entry[6] += 1
|
announce_entry[6] += 1
|
||||||
if announce_entry[6] >= Transport.LOCAL_REBROADCASTS_MAX:
|
if announce_entry[6] >= Transport.LOCAL_REBROADCASTS_MAX:
|
||||||
RNS.log("Max local rebroadcasts of announce for "+RNS.prettyhexrep(packet.destination_hash)+" reached, dropping announce from our table", RNS.LOG_DEBUG)
|
RNS.log("Max local rebroadcasts of announce for "+RNS.prettyhexrep(packet.destination_hash)+" reached, dropping announce from our table", RNS.LOG_DEBUG)
|
||||||
Transport.announce_table.pop(packet.destination_hash)
|
if packet.destination_hash in Transport.announce_table:
|
||||||
|
Transport.announce_table.pop(packet.destination_hash)
|
||||||
|
|
||||||
if packet.hops-1 == announce_entry[4]+1 and announce_entry[2] > 0:
|
if packet.hops-1 == announce_entry[4]+1 and announce_entry[2] > 0:
|
||||||
now = time.time()
|
now = time.time()
|
||||||
@ -1470,6 +1473,7 @@ class Transport:
|
|||||||
expires = now + Transport.PATHFINDER_E
|
expires = now + Transport.PATHFINDER_E
|
||||||
|
|
||||||
random_blobs.append(random_blob)
|
random_blobs.append(random_blob)
|
||||||
|
random_blobs = random_blobs[-Transport.MAX_RANDOM_BLOBS:]
|
||||||
|
|
||||||
if (RNS.Reticulum.transport_enabled() or Transport.from_local_client(packet)) and packet.context != RNS.Packet.PATH_RESPONSE:
|
if (RNS.Reticulum.transport_enabled() or Transport.from_local_client(packet)) and packet.context != RNS.Packet.PATH_RESPONSE:
|
||||||
# Insert announce into announce table for retransmission
|
# Insert announce into announce table for retransmission
|
||||||
@ -2582,7 +2586,7 @@ class Transport:
|
|||||||
received_from = de[1]
|
received_from = de[1]
|
||||||
hops = de[2]
|
hops = de[2]
|
||||||
expires = de[3]
|
expires = de[3]
|
||||||
random_blobs = de[4]
|
random_blobs = de[4][-Transport.PERSIST_RANDOM_BLOBS:]
|
||||||
packet_hash = de[6].get_hash()
|
packet_hash = de[6].get_hash()
|
||||||
|
|
||||||
serialised_entry = [
|
serialised_entry = [
|
||||||
|
Loading…
Reference in New Issue
Block a user