Skip to content

Commit

Permalink
Internal interface config handling for I2PInterface
Browse files Browse the repository at this point in the history
  • Loading branch information
markqvist committed Nov 21, 2024
1 parent e2efc61 commit cd8fe95
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 28 deletions.
11 changes: 10 additions & 1 deletion RNS/Interfaces/I2PInterface.py
Original file line number Diff line number Diff line change
Expand Up @@ -830,8 +830,17 @@ def __str__(self):
class I2PInterface(Interface):
BITRATE_GUESS = 256*1000

def __init__(self, owner, name, rns_storagepath, peers, connectable = False, ifac_size = 16, ifac_netname = None, ifac_netkey = None):
def __init__(self, owner, configuration):
super().__init__()

c = configuration
name = c["name"]
rns_storagepath = c["storagepath"]
peers = c.as_list("peers") if "peers" in c else None
connectable = c.as_bool("connectable") if "connectable" in c else False
ifac_size = c["ifac_size"]
ifac_netname = c["ifac_netname"]
ifac_netkey = c["ifac_netkey"]

self.HW_MTU = 1064

Expand Down
34 changes: 7 additions & 27 deletions RNS/Reticulum.py
Original file line number Diff line number Diff line change
Expand Up @@ -602,37 +602,17 @@ def interface_post_init(interface):
interface_post_init(interface)

if c["type"] == "I2PInterface":
i2p_peers = c.as_list("peers") if "peers" in c else None
connectable = c.as_bool("connectable") if "connectable" in c else False

if ifac_size == None:
ifac_size = 16

interface = I2PInterface.I2PInterface(
RNS.Transport,
name,
Reticulum.storagepath,
i2p_peers,
connectable = connectable,
ifac_size = ifac_size,
ifac_netname = ifac_netname,
ifac_netkey = ifac_netkey,
)

if "outgoing" in c and c.as_bool("outgoing") == False:
interface.OUT = False
else:
interface.OUT = True

if interface_mode == Interface.Interface.MODE_ACCESS_POINT:
RNS.log(str(interface)+" does not support Access Point mode, reverting to default mode: Full", RNS.LOG_WARNING)
interface_mode = Interface.Interface.MODE_FULL

interface.mode = interface_mode

interface.announce_cap = announce_cap
if configured_bitrate:
interface.bitrate = configured_bitrate
interface_config["storagepath"] = Reticulum.storagepath
interface_config["ifac_netname"] = ifac_netname
interface_config["ifac_netkey"] = ifac_netkey
interface_config["ifac_size"] = ifac_size

interface = I2PInterface.I2PInterface(RNS.Transport, interface_config)
interface_post_init(interface)

if c["type"] == "SerialInterface":
port = c["port"] if "port" in c else None
Expand Down

0 comments on commit cd8fe95

Please sign in to comment.