Modified project microReticulum:

Fix late packet callback binding for inbound Links

Handle the case where an inbound Link payload is decrypted before the app packet callback has been installed on that Link object. When Link::receive() sees decrypted plaintext with no packet callback, it now invokes the owner destination’s link-established callback as a late binding opportunity, then dispatches the already-decrypted payload if the callback was installed.

This prevents valid inbound Link messages from ending at RNSLINKRX event=no_packet_callback after decrypt_ok, and allows the app-level RX handler to report the received payload.
This commit is contained in:
John Poole 2026-06-03 20:38:11 -07:00
commit 398f0d8761
2 changed files with 5 additions and 0 deletions

View file

@ -10,3 +10,6 @@ examples
# optional: timestamped outputs if you expand later
*_magnetometer_readings*.log
# pending future project
308_ble_six_unit_mesh*

View file

@ -75,6 +75,8 @@ The following `RNS...` prefixes are generated by the linked microReticulum tree
| `RNSLINKRX` | `microReticulum/src/Link.cpp` | Link-associated packet receive path. It logs packet context, decrypt success, app packet callback entry/return, no-callback cases, and LRRTT dispatch. |
| `RNSDEC` | `microReticulum/src/Link.cpp` | Link encryption/decryption token diagnostics, including encrypt attempts, decrypt attempts, and decrypt failure class. |
If `RNSLINKRX event=decrypt_ok` is followed by `event=no_packet_callback`, the encrypted Link payload was successfully decrypted but the application packet callback was not installed on that Link object. Current firmware asks the Link owner callback to bind late in that case, so the expected sequence is `late_owner_callback_enter`, `late_owner_callback_return callback=1`, `callback_enter`, and then the app-level `RX LINK: ...` line.
Reticulum library logging is set to warning level in this exercise. Heap, path-store, entries, and byte-count diagnostics are intentionally suppressed so serial logs remain focused on field-test results.
# Build, Upload, And Monitor