Skip to content

Commit

Permalink
improve config generators
Browse files Browse the repository at this point in the history
  • Loading branch information
x committed Jan 1, 2025
1 parent 648d9d8 commit 1469d71
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 26 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ require (
lukechampine.com/blake3 v1.3.0 // indirect
)

replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20241229165737-711ea7a9f7b2
replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.8.9-0.20250101231347-96d04e591c0b

replace github.com/xtls/xray-core => github.com/hiddify/xray-core v0.0.0-20241229214239-f398d912c726

Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -241,8 +241,8 @@ github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8
github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns=
github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb h1:PGufWXXDq9yaev6xX1YQauaO1MV90e6Mpoq1I7Lz/VM=
github.com/hectane/go-acl v0.0.0-20230122075934-ca0b05cb1adb/go.mod h1:QiyDdbZLaJ/mZP4Zwc9g2QsfaEA4o7XvvgZegSci5/E=
github.com/hiddify/hiddify-sing-box v1.8.9-0.20241229165737-711ea7a9f7b2 h1:ofbqvCRR39WDY/5Q+Hpr04ZP+YUqAwzchlkkLOs59V8=
github.com/hiddify/hiddify-sing-box v1.8.9-0.20241229165737-711ea7a9f7b2/go.mod h1:u16dzx+T4FD39c223mKWT0H0mcHhVRpQaBlN34dPXMk=
github.com/hiddify/hiddify-sing-box v1.8.9-0.20250101231347-96d04e591c0b h1:jwUqTBH6OJAQUBmoH5VgTmV6hSbb7X8O4axaRPFsoik=
github.com/hiddify/hiddify-sing-box v1.8.9-0.20250101231347-96d04e591c0b/go.mod h1:u16dzx+T4FD39c223mKWT0H0mcHhVRpQaBlN34dPXMk=
github.com/hiddify/ray2sing v0.0.0-20241229214451-3fc92fa15e53 h1:zarihBuE+gyDGr07eaDBugJ1ZbiUkH0fad88Pg5AzMQ=
github.com/hiddify/ray2sing v0.0.0-20241229214451-3fc92fa15e53/go.mod h1:S23JGf2Oj7a3sfg42ycDTLIqaPLmymEnMPnV4szxCvU=
github.com/hiddify/warp-plus v0.0.0-20240717223357-4f3122e0d11d h1:vRGKh9ou+/vQGfVYa8MczhbIVjHxlP52OWwrDWO77RA=
Expand Down
51 changes: 28 additions & 23 deletions v2/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ const (
OutboundURLTestTag = "auto"
OutboundDNSTag = "dns-out §hide§"
OutboundDirectFragmentTag = "direct-fragment §hide§"
WARPConfigTag = "Hiddify Warp ✅"

InboundTUNTag = "tun-in"
InboundMixedTag = "mixed-in"
Expand Down Expand Up @@ -68,6 +69,11 @@ func BuildConfig(opt HiddifyOptions, input option.Options) (*option.Options, err
options.DNS = &option.DNSOptions{
StaticIPs: map[string][]string{},
}
if opt.Warp.EnableWarp && opt.Warp.Mode == "warp_over_proxy" {
OutboundMainProxyTag = WARPConfigTag
} else {
OutboundMainProxyTag = OutboundSelectTag
}
setClashAPI(&options, &opt)
setLog(&options, &opt)
setInbound(&options, &opt)
Expand All @@ -87,7 +93,6 @@ func getHostnameIfNotIP(inp string) (string, error) {
if inp == "" {
return "", fmt.Errorf("empty hostname: %s", inp)
}

if net.ParseIP(strings.Trim(inp, "[]")) == nil {
return inp, nil
}
Expand Down Expand Up @@ -122,16 +127,14 @@ func setOutbounds(options *option.Options, input *option.Options, opt *HiddifyOp
if err != nil {
return fmt.Errorf("failed to generate warp config: %v", err)
}
out.Tag = "Hiddify Warp ✅"
out.Tag = WARPConfigTag
if opt.Warp.Mode == "warp_over_proxy" {
out.WireGuardOptions.Detour = OutboundSelectTag
options.Route.Final = out.Tag
} else {
out.WireGuardOptions.Detour = OutboundDirectTag
}
patchWarp(out, opt, true, nil)
outbounds = append(outbounds, *out)
// tags = append(tags, out.Tag)
}
for _, out := range input.Outbounds {
outbound, err := patchOutbound(out, *opt, options.DNS.StaticIPs)
Expand All @@ -148,15 +151,17 @@ func setOutbounds(options *option.Options, input *option.Options, opt *HiddifyOp
case C.TypeCustom:
continue
default:
if opt.Warp.EnableWarp && opt.Warp.Mode == "warp_over_proxy" && out.Tag == "Hiddify Warp ✅" {
if opt.Warp.EnableWarp && opt.Warp.Mode == "warp_over_proxy" && out.Tag == WARPConfigTag {
continue
}
if !strings.Contains(out.Tag, "§hide§") && !contains([]string{"direct", "bypass", "block"}, out.Tag) {
if contains([]string{"direct", "bypass", "block"}, out.Tag) {
continue
}
if !strings.Contains(out.Tag, "§hide§") {
tags = append(tags, out.Tag)
}
out = patchHiddifyWarpFromConfig(out, *opt)
outbounds = append(outbounds, out)

}
}
testurls := []string{"http://captive.apple.com/generate_204", "https://cp.cloudflare.com", "https://google.com/generate_204"}
Expand Down Expand Up @@ -384,6 +389,7 @@ func setDns(options *option.Options, opt *HiddifyOptions) {
Address: opt.RemoteDnsAddress,
AddressResolver: DNSDirectTag,
Strategy: opt.RemoteDnsDomainStrategy,
Detour: OutboundMainProxyTag,
},
{
Tag: DNSTricksDirectTag,
Expand Down Expand Up @@ -795,7 +801,6 @@ func setRoutingOptions(options *option.Options, opt *HiddifyOptions) {
Outbound: OutboundDirectTag,
},
})

}
options.Route = &option.RouteOptions{
Rules: routeRules,
Expand Down Expand Up @@ -828,49 +833,49 @@ func setRoutingOptions(options *option.Options, opt *HiddifyOptions) {
func patchHiddifyWarpFromConfig(out option.Outbound, opt HiddifyOptions) option.Outbound {
if opt.Warp.EnableWarp && opt.Warp.Mode == "proxy_over_warp" {
if out.DirectOptions.Detour == "" {
out.DirectOptions.Detour = "Hiddify Warp ✅"
out.DirectOptions.Detour = WARPConfigTag
}
if out.HTTPOptions.Detour == "" {
out.HTTPOptions.Detour = "Hiddify Warp ✅"
out.HTTPOptions.Detour = WARPConfigTag
}
if out.Hysteria2Options.Detour == "" {
out.Hysteria2Options.Detour = "Hiddify Warp ✅"
out.Hysteria2Options.Detour = WARPConfigTag
}
if out.HysteriaOptions.Detour == "" {
out.HysteriaOptions.Detour = "Hiddify Warp ✅"
out.HysteriaOptions.Detour = WARPConfigTag
}
if out.SSHOptions.Detour == "" {
out.SSHOptions.Detour = "Hiddify Warp ✅"
out.SSHOptions.Detour = WARPConfigTag
}
if out.ShadowTLSOptions.Detour == "" {
out.ShadowTLSOptions.Detour = "Hiddify Warp ✅"
out.ShadowTLSOptions.Detour = WARPConfigTag
}
if out.ShadowsocksOptions.Detour == "" {
out.ShadowsocksOptions.Detour = "Hiddify Warp ✅"
out.ShadowsocksOptions.Detour = WARPConfigTag
}
if out.ShadowsocksROptions.Detour == "" {
out.ShadowsocksROptions.Detour = "Hiddify Warp ✅"
out.ShadowsocksROptions.Detour = WARPConfigTag
}
if out.SocksOptions.Detour == "" {
out.SocksOptions.Detour = "Hiddify Warp ✅"
out.SocksOptions.Detour = WARPConfigTag
}
if out.TUICOptions.Detour == "" {
out.TUICOptions.Detour = "Hiddify Warp ✅"
out.TUICOptions.Detour = WARPConfigTag
}
if out.TorOptions.Detour == "" {
out.TorOptions.Detour = "Hiddify Warp ✅"
out.TorOptions.Detour = WARPConfigTag
}
if out.TrojanOptions.Detour == "" {
out.TrojanOptions.Detour = "Hiddify Warp ✅"
out.TrojanOptions.Detour = WARPConfigTag
}
if out.VLESSOptions.Detour == "" {
out.VLESSOptions.Detour = "Hiddify Warp ✅"
out.VLESSOptions.Detour = WARPConfigTag
}
if out.VMessOptions.Detour == "" {
out.VMessOptions.Detour = "Hiddify Warp ✅"
out.VMessOptions.Detour = WARPConfigTag
}
if out.WireGuardOptions.Detour == "" {
out.WireGuardOptions.Detour = "Hiddify Warp ✅"
out.WireGuardOptions.Detour = WARPConfigTag
}
}
return out
Expand Down

0 comments on commit 1469d71

Please sign in to comment.