mirror of
https://github.com/wyx2685/V2bX.git
synced 2026-02-04 12:40:11 +00:00
update sing-box core v1.11
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user