Skip to content

Comments

Wire BanditURLOverrides through to MutableURLTest#333

Open
myleshorton wants to merge 3 commits intomainfrom
bandit-url-overrides
Open

Wire BanditURLOverrides through to MutableURLTest#333
myleshorton wants to merge 3 commits intomainfrom
bandit-url-overrides

Conversation

@myleshorton
Copy link
Contributor

Summary

  • Passes BanditURLOverrides from config response through to sing-box MutableURLTestOutboundOptions.URLOverrides
  • Updates urlTestOutbound() and appendGroupOutbounds() to accept and forward urlOverrides map[string]string
  • Lantern server group gets bandit overrides; user group and autoAll pass nil
  • Updates go.mod to reference common and lantern-box bandit-url-overrides branches

Test plan

  • go vet ./vpn/... passes
  • Existing TestConnection and TestUpdateServers still pass
  • Verify MutableURLTest uses per-proxy callback URLs when overrides are present

🤖 Generated with Claude Code

Pass per-proxy callback URLs from config response through to
sing-box MutableURLTest URLOverrides, enabling per-ISP bandit
proxy assignment on the client side.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings February 20, 2026 17:11
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR threads BanditURLOverrides from the loaded config through to Lantern’s MutableURLTestOutboundOptions.URLOverrides, enabling per-proxy URL test callback overrides to reach the sing-box mutable URL test implementation.

Changes:

  • Extend urlTestOutbound() and appendGroupOutbounds() to accept urlOverrides map[string]string and forward it into MutableURLTestOutboundOptions.URLOverrides.
  • Pass cfg.BanditURLOverrides into the Lantern server group’s URL test outbound; keep User/All URL test outbounds using nil.
  • Update module dependencies (go.mod/go.sum) to versions/branches that include the new options surface.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
vpn/vpn.go Updates pre-start URL test outbound construction to the new urlTestOutbound signature (currently passing nil overrides).
vpn/tunnel_test.go Updates tests to call urlTestOutbound with the new signature.
vpn/boxoptions.go Wires BanditURLOverrides into the Lantern group’s MutableURLTest outbound and adds URLOverrides to the outbound options.
go.mod Bumps common/lantern-box (and other deps) to versions needed for the new override option surface.
go.sum Corresponding checksum updates after dependency changes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

vpn/vpn.go Outdated
tags = append(tags, ob.Tag)
}
outbounds = append(outbounds, urlTestOutbound("preTest", tags))
outbounds = append(outbounds, urlTestOutbound("preTest", tags, nil))
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

preTest() loads the config into cfg, but still calls urlTestOutbound("preTest", tags, nil), so BanditURLOverrides from the config are ignored during pre-start URL tests. If overrides are meant to affect URL testing behavior, they should be forwarded here as well (e.g., pass cfg.BanditURLOverrides).

Copilot uses AI. Check for mistakes.
slog.Debug("Merged config options", "tags", lanternTags)

appendGroupOutbounds(&opts, servers.SGLantern, autoLanternTag, lanternTags)
appendGroupOutbounds(&opts, servers.SGLantern, autoLanternTag, lanternTags, cfg.BanditURLOverrides)
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR introduces URLOverrides wiring for MutableURLTest, but the existing buildOptions tests only validate Outbounds membership. Consider adding an assertion that the autoLanternTag MutableURLTest outbound includes the expected URLOverrides when cfg.BanditURLOverrides is set, to prevent regressions.

Copilot uses AI. Check for mistakes.
github.com/sagernet/sing v0.7.18
github.com/sagernet/sing-box v1.12.13
github.com/sagernet/sing-dns v0.4.6
github.com/sagernet/sing-box v1.12.22
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

github.com/sagernet/sing-box is still replaced with github.com/getlantern/sing-box-minimal v1.12.19-lantern (see replace directive at the top of this file), so bumping the required sing-box version to v1.12.22 doesn’t actually change the code you build against and can be confusing. Either align the replace target/version with the intended upgrade, or keep the required version consistent with what’s actually used via replace.

Suggested change
github.com/sagernet/sing-box v1.12.22
github.com/sagernet/sing-box v1.12.19

Copilot uses AI. Check for mistakes.
myleshorton and others added 2 commits February 20, 2026 11:06
Forward cfg.BanditURLOverrides into the preTest urlTestOutbound so
bandit callback URLs are used during pre-start URL testing, not just
during normal operation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Verify that URLOverrides from config.BanditURLOverrides are correctly
forwarded into the auto-lantern MutableURLTestOutboundOptions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant