You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wire the process_incoming_event match arms for GetLinkOp and BuddyOp in src/node/base_node.rs. Both funnel into the same try_link-backed link-decision handler (accept-or-forward); BuddyOp first gates on a membership-vector prefix match, then either runs that same decision (on match) or forwards outward / terminates with SetLinkOp{ linked: None } (on no match). Algorithm detail: docs/protocol/concurrent-insert.md, Sections 3.3, 4.1, and 4.3.
Files
src/node/base_node.rs — two new match arms.
Acceptance Criteria
GetLinkOp: LinkedDirectly → reply SetLinkOp to the originator; Forward → relay the same GetLinkOp to the existing neighbor, unchanged.
BuddyOp: on prefix match (predicate from [Node] Add: prefix-match and max-level queries to Core #86), run the identical accept-or-forward decision as GetLinkOp (itself LinkedDirectly or Forward, same as above); on no match, forward outward, or reply SetLinkOp { linked: None } at the end of the line (Section 3.3).
A try_link error (invalid level) propagates via .map_err(...)?, matching the other match arms; not unwrapped.
Tests cover GetLinkOp both outcomes; BuddyOp match-accept, match-forward, no-match-forward, and end-of-line; and the error path.
Summary
Wire the
process_incoming_eventmatch arms forGetLinkOpandBuddyOpinsrc/node/base_node.rs. Both funnel into the sametry_link-backed link-decision handler (accept-or-forward);BuddyOpfirst gates on a membership-vector prefix match, then either runs that same decision (on match) or forwards outward / terminates withSetLinkOp{ linked: None }(on no match). Algorithm detail:docs/protocol/concurrent-insert.md, Sections 3.3, 4.1, and 4.3.Files
src/node/base_node.rs— two new match arms.Acceptance Criteria
LinkedDirectly→ replySetLinkOpto the originator;Forward→ relay the sameGetLinkOpto the existing neighbor, unchanged.LinkedDirectlyorForward, same as above); on no match, forward outward, or replySetLinkOp { linked: None }at the end of the line (Section 3.3).try_linkerror (invalid level) propagates via.map_err(...)?, matching the other match arms; not unwrapped.Dependencies