Packet hashlist save to disk

This commit is contained in:
Mark Qvist 2018-04-24 18:01:52 +02:00
parent eed78798f2
commit 0c49ca8458
3 changed files with 22 additions and 1 deletions

View File

@ -151,7 +151,7 @@ class KISSInterface(Interface):
if written != len(kiss_command):
raise IOError("Could not configure KISS interface slot time to "+str(slottime_ms)+" (command value "+str(slottime)+")")
def setFlowControl(self, flow_control):
def setFlowControl(self, flow_control):
kiss_command = KISS.FEND+KISS.CMD_READY+chr(0x01)+KISS.FEND
written = self.serial.write(kiss_command)
if written != len(kiss_command):

View File

@ -53,6 +53,7 @@ class Reticulum:
RNS.Transport.start()
atexit.register(RNS.Transport.exitHandler)
atexit.register(RNS.Identity.exitHandler)
def applyConfig(self):

View File

@ -3,6 +3,7 @@ import RNS
import time
import threading
from time import sleep
import vendor.umsgpack as umsgpack
class Transport:
# Constants
@ -42,6 +43,15 @@ class Transport:
else:
RNS.log("Loaded Transport Identity from disk", RNS.LOG_VERBOSE)
packet_hashlist_path = RNS.Reticulum.configdir+"/packet_hashlist"
if os.path.isfile(packet_hashlist_path):
try:
file = open(packet_hashlist_path, "r")
Transport.packet_hashlist = umsgpack.unpackb(file.read())
file.close()
except Exception as e:
RNS.log("Could not load packet hashlist from disk, the contained exception was: "+str(e), RNS.LOG_ERROR)
thread = threading.Thread(target=Transport.jobloop)
thread.setDaemon(True)
@ -288,3 +298,13 @@ class Transport:
def transport_destination():
# TODO: implement this
pass
@staticmethod
def exitHandler():
try:
packet_hashlist_path = RNS.Reticulum.configdir+"/packet_hashlist"
file = open(packet_hashlist_path, "w")
file.write(umsgpack.packb(Transport.packet_hashlist))
file.close()
except Exception as e:
RNS.log("Could not save packet hashlist to disk, the contained exception was: "+str(e), RNS.LOG_ERROR)