diff --git a/cmd/sing-box/cmd_check.go b/cmd/sing-box/cmd_check.go index 29a39081..5bd1093f 100644 --- a/cmd/sing-box/cmd_check.go +++ b/cmd/sing-box/cmd_check.go @@ -5,6 +5,7 @@ import ( "github.com/sagernet/sing-box" "github.com/sagernet/sing-box/log" + "github.com/sagernet/sing/service" "github.com/spf13/cobra" ) @@ -30,7 +31,7 @@ func check() error { if err != nil { return err } - ctx, cancel := context.WithCancel(globalCtx) + ctx, cancel := context.WithCancel(service.ExtendContext(globalCtx)) instance, err := box.New(box.Options{ Context: ctx, Options: options, diff --git a/cmd/sing-box/cmd_run.go b/cmd/sing-box/cmd_run.go index 2037a979..fecd99a0 100644 --- a/cmd/sing-box/cmd_run.go +++ b/cmd/sing-box/cmd_run.go @@ -19,6 +19,7 @@ import ( E "github.com/sagernet/sing/common/exceptions" "github.com/sagernet/sing/common/json" "github.com/sagernet/sing/common/json/badjson" + "github.com/sagernet/sing/service" "github.com/spf13/cobra" ) @@ -136,7 +137,7 @@ func create(options option.Options) (*box.Box, context.CancelFunc, error) { } options.Log.DisableColor = true } - ctx, cancel := context.WithCancel(globalCtx) + ctx, cancel := context.WithCancel(service.ExtendContext(globalCtx)) instance, err := box.New(box.Options{ Context: ctx, Options: options, diff --git a/cmd/sing-box/cmd_tools.go b/cmd/sing-box/cmd_tools.go index 55e5b458..3c60a49a 100644 --- a/cmd/sing-box/cmd_tools.go +++ b/cmd/sing-box/cmd_tools.go @@ -7,6 +7,7 @@ import ( "github.com/sagernet/sing-box" E "github.com/sagernet/sing/common/exceptions" N "github.com/sagernet/sing/common/network" + "github.com/sagernet/sing/service" "github.com/spf13/cobra" ) @@ -30,7 +31,7 @@ func createPreStartedClient() (*box.Box, error) { return nil, err } } - instance, err := box.New(box.Options{Context: globalCtx, Options: options}) + instance, err := box.New(box.Options{Context: service.ExtendContext(globalCtx), Options: options}) if err != nil { return nil, E.Cause(err, "create service") } diff --git a/daemon/instance.go b/daemon/instance.go index 495b2b99..5e7502ce 100644 --- a/daemon/instance.go +++ b/daemon/instance.go @@ -39,6 +39,7 @@ type Instance struct { func (s *StartedService) CheckConfig(ctx context.Context, configContent string) error { selectedLocale := locale.FromContext(ctx) ctx, _ = locale.ContextWithLocale(s.ctx, selectedLocale.Locale) + ctx = service.ExtendContext(ctx) options, err := parseConfig(ctx, configContent) if err != nil { return err