Skip to content

leaf nodes can't resolve paths - stores only get initialized when transport is enabled #74

Description

@wet-bulb

hey,

Transport::start() only initializes the path table, known destinations and packet hashlist stores inside if (Reticulum::transport_enabled()) (Transport.cpp:380). with transport off those never get set up, so Identity::remember() fails on every inbound announce and no path gets added.

node still announces, still comes up clean, just can't reach anything. took a while to find for that reason.

env:

  • microReticulum 40fa628 (0.5.0-8), current master
  • native build, pio -e native17, running test_interop. not on hardware yet
  • macOS
  • python RNS 1.4.2, 1.1.9, 1.2.9, same on all three
  • transport_enabled(false), RNS_USE_FS

repro: set transport_enabled(false), run any of the four test_interop scenarios against a python peer. expected is the announce gets remembered and a path added. instead all four fail the same way. initialize the stores and all four pass both directions.

[ERR] remember: failed to store identity for Identity.cpp:240
[ERR] Failed to add destination to path table! Transport.cpp:2652

a node with transport off still needs to remember who it's heard from, so those three inits don't look transport-specific to me. tunnel table and probe destination do.

running it that way here if it's useful: https://github.com/wet-bulb/microReticulum/tree/fix/transport-store-init

can turn it into a PR or leave it with you, whichever you'd rather.

gel

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions