update sing-box core v1.11

This commit is contained in:
wyx2685
2024-12-13 06:22:44 +09:00
parent 7dbe5fda85
commit 981e59b836
8 changed files with 168 additions and 250 deletions

View File

@@ -5,14 +5,15 @@ import (
"fmt"
"os"
"github.com/sagernet/sing-box/include"
"github.com/sagernet/sing-box/log"
"github.com/InazumaV/V2bX/conf"
vCore "github.com/InazumaV/V2bX/core"
"github.com/goccy/go-json"
box "github.com/sagernet/sing-box"
"github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing-box/option"
"github.com/sagernet/sing/common/json"
)
var _ vCore.Core = (*Sing)(nil)
@@ -36,13 +37,15 @@ func init() {
}
func New(c *conf.CoreConfig) (vCore.Core, error) {
ctx := context.Background()
ctx = box.Context(ctx, include.InboundRegistry(), include.OutboundRegistry(), include.EndpointRegistry())
options := option.Options{}
if len(c.SingConfig.OriginalPath) != 0 {
data, err := os.ReadFile(c.SingConfig.OriginalPath)
if err != nil {
return nil, fmt.Errorf("read original config error: %s", err)
}
err = json.Unmarshal(data, &options)
options, err = json.UnmarshalExtendedContext[option.Options](ctx, data)
if err != nil {
return nil, fmt.Errorf("unmarshal original config error: %s", err)
}
@@ -63,21 +66,20 @@ func New(c *conf.CoreConfig) (vCore.Core, error) {
}
os.Setenv("SING_DNS_PATH", "")
b, err := box.New(box.Options{
Context: context.Background(),
Context: ctx,
Options: options,
})
if err != nil {
return nil, err
}
hs := NewHookServer(b.Router().GetCtx(), c.SingConfig.EnableConnClear)
b.Router().SetClashServer(hs)
hs := NewHookServer(c.SingConfig.EnableConnClear)
b.Router().SetTracker(hs)
return &Sing{
ctx: b.Router().GetCtx(),
box: b,
hookServer: hs,
router: b.Router(),
logFactory: b.LogFactory(),
inbounds: make(map[string]adapter.Inbound),
}, nil
}