Fix config check sharing service registry with the running instance

This commit is contained in:
世界
2026-09-08 19:01:17 +08:00
parent 89ca622e99
commit 046c46eacb
4 changed files with 7 additions and 3 deletions
+2 -1
View File
@@ -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,
+2 -1
View File
@@ -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,
+2 -1
View File
@@ -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")
}
+1
View File
@@ -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