Added Pipe Interface

This commit is contained in:
Mark Qvist 2022-05-14 20:19:46 +02:00
parent b35f86643a
commit e825b0b8ff
4 changed files with 222 additions and 4 deletions

View file

@ -328,7 +328,7 @@ class Reticulum:
self.__start_local_interface()
if self.is_shared_instance or self.is_standalone_instance:
RNS.log("Bringing up system interfaces...", RNS.LOG_DEBUG)
RNS.log("Bringing up system interfaces...", RNS.LOG_VERBOSE)
interface_names = []
for name in self.config["interfaces"]:
if not name in interface_names:
@ -642,6 +642,35 @@ class Reticulum:
else:
interface.ifac_size = 8
if c["type"] == "PipeInterface":
command = c["command"] if "command" in c else None
respawn_delay = c.as_float("respawn_delay") if "respawn_delay" in c else None
if command == None:
raise ValueError("No command specified for PipeInterface")
interface = PipeInterface.PipeInterface(
RNS.Transport,
name,
command,
respawn_delay,
)
if "outgoing" in c and c.as_bool("outgoing") == False:
interface.OUT = False
else:
interface.OUT = True
interface.mode = interface_mode
interface.announce_cap = announce_cap
if configured_bitrate:
interface.bitrate = configured_bitrate
if ifac_size != None:
interface.ifac_size = ifac_size
else:
interface.ifac_size = 8
if c["type"] == "KISSInterface":
preamble = int(c["preamble"]) if "preamble" in c else None
txtail = int(c["txtail"]) if "txtail" in c else None
@ -827,7 +856,7 @@ class Reticulum:
RNS.log("The interface name \""+name+"\" was already used. Check your configuration file for errors!", RNS.LOG_ERROR)
RNS.panic()
RNS.log("System interfaces are ready", RNS.LOG_DEBUG)
RNS.log("System interfaces are ready", RNS.LOG_VERBOSE)