Skip to content

Commit

Permalink
patch more unsupported config
Browse files Browse the repository at this point in the history
  • Loading branch information
wwqgtxx committed Sep 12, 2024
1 parent 8f1c235 commit a197f8f
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 13 deletions.
3 changes: 1 addition & 2 deletions core/src/main/golang/native/config/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,7 @@ func Load(path string) error {
return err
}

// Start the external controller like in hub.Parse(), but we have set its
// default override value to end with ":0" for security.
// like hub.Parse()
hub.ApplyConfig(cfg)

app.ApplySubtitlePattern(rawCfg.ClashForAndroid.UiSubtitlePattern)
Expand Down
20 changes: 18 additions & 2 deletions core/src/main/golang/native/config/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ import (

"cfa/native/common"

"github.com/metacubex/mihomo/config"
C "github.com/metacubex/mihomo/constant"
"github.com/metacubex/mihomo/log"

"github.com/metacubex/mihomo/config"
)

var processors = []processor{
Expand All @@ -23,6 +22,7 @@ var processors = []processor{
patchProfile,
patchDns,
patchTun,
patchListeners,
patchProviders,
validConfig,
}
Expand Down Expand Up @@ -88,7 +88,23 @@ func patchDns(cfg *config.RawConfig, _ string) error {

func patchTun(cfg *config.RawConfig, _ string) error {
cfg.Tun.Enable = false
cfg.Tun.AutoRoute = false
cfg.Tun.AutoDetectInterface = false
return nil
}

func patchListeners(cfg *config.RawConfig, _ string) error {
newListeners := make([]map[string]any, 0, len(cfg.Listeners))
for _, mapping := range cfg.Listeners {
if proxyType, existType := mapping["type"].(string); existType {
switch proxyType {
case "tproxy", "redir", "tun":
continue // remove those listeners which is not supported
}
}
newListeners = append(newListeners, mapping)
}
cfg.Listeners = newListeners
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/main/golang/native/proxy/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func Start(listen string) (listenAt string, err error) {

listener, err = http.NewWithAuthenticate(listen, tunnel.Tunnel, false)
if err == nil {
listenAt = listener.Listener().Addr().String()
listenAt = listener.Address()
}

return
Expand Down
18 changes: 10 additions & 8 deletions core/src/main/golang/native/tun/tun.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,16 @@ func Start(fd int, stack, gateway, portal, dns string) (io.Closer, error) {
}

options := LC.Tun{
Enable: true,
Device: sing_tun.InterfaceName,
Stack: tunStack,
DNSHijack: dnsHijack,
Inet4Address: prefix4,
Inet6Address: prefix6,
MTU: 9000, // private const val TUN_MTU = 9000 in TunService.kt
FileDescriptor: fd,
Enable: true,
Device: sing_tun.InterfaceName,
Stack: tunStack,
DNSHijack: dnsHijack,
AutoRoute: false, // had set route in TunService.kt
AutoDetectInterface: false, // implements by VpnService::protect
Inet4Address: prefix4,
Inet6Address: prefix6,
MTU: 9000, // private const val TUN_MTU = 9000 in TunService.kt
FileDescriptor: fd,
}

tunOptions, _ := json.Marshal(options)
Expand Down

0 comments on commit a197f8f

Please sign in to comment.