Skip to content

fix: getTunnelTargetMatch never reports a match#885

Open
zentavr wants to merge 1 commit into
openconfig:mainfrom
zentavr:fix/tunnel-target-match-never-returns-true
Open

fix: getTunnelTargetMatch never reports a match#885
zentavr wants to merge 1 commit into
openconfig:mainfrom
zentavr:fix/tunnel-target-match-never-returns-true

Conversation

@zentavr

@zentavr zentavr commented Jul 4, 2026

Copy link
Copy Markdown

Fixes #884

getTunnelTargetMatch's filter closure (passed to store.List) checks the target ID regex,
Type regex, and builds the resulting TargetConfig - but every branch, including the
successful match, fell through to the unconditional return false at the end of the function.
store.List only includes an entry when the filter returns true, so matchingConfigs was
always empty and every tunnel target was rejected as "target ignored, not matching any rule",
regardless of configuration.

This has been broken since the tunnel-target-matches feature was added in 7e297f7.

  • One-line fix: return true on the successful match path.
  • Added a regression test (tunnel_server_test.go) that fails against the old code and passes
    with the fix.

The store.List filter closure in getTunnelTargetMatch checked the
target ID regex, the target Type regex, and computed the resulting
TargetConfig, but every code path fell through to the unconditional
`return false` at the end of the function. As a result store.List
never included any entry in its result, matchingConfigs was always
empty, and getTunnelTargetMatch always returned nil -- so every
connecting tunnel target was rejected with "target ignored, not
matching any rule" regardless of any configured tunnel-target-matches.

This has been broken since the tunnel-target-matches feature was
introduced in 7e297f7.

Add a regression test that fails on the old code and passes with the
fix.
@google-cla

google-cla Bot commented Jul 4, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tunnel-target-matches never matches any tunnel target ("target ignored, not matching any rule")

1 participant