1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-21 15:05:23 +00:00

switch to protojson based config for log dns router

This commit is contained in:
Shelikhoo 2021-09-06 18:18:22 +01:00
parent 845d031357
commit 4835b8261d
No known key found for this signature in database
GPG Key ID: C4D5E79D22B25316
2 changed files with 11 additions and 9 deletions

View File

@ -26,7 +26,11 @@ func (c RootConfig) BuildV5(ctx context.Context) (proto.Message, error) {
var logConfMsg *anypb.Any
if c.LogConfig != nil {
logConfMsg = serial.ToTypedMessage(c.LogConfig.Build())
logConfMsgUnpacked, err := loadHeterogeneousConfigFromRawJson("service", "log", c.LogConfig)
if err != nil {
return nil, err
}
logConfMsg = serial.ToTypedMessage(logConfMsgUnpacked)
} else {
logConfMsg = serial.ToTypedMessage(log.DefaultLogConfig())
}
@ -35,7 +39,7 @@ func (c RootConfig) BuildV5(ctx context.Context) (proto.Message, error) {
config.App = append([]*anypb.Any{logConfMsg}, config.App...)
if c.RouterConfig != nil {
routerConfig, err := c.RouterConfig.BuildV5(ctx)
routerConfig, err := loadHeterogeneousConfigFromRawJson("service", "router", c.RouterConfig)
if err != nil {
return nil, err
}
@ -43,7 +47,7 @@ func (c RootConfig) BuildV5(ctx context.Context) (proto.Message, error) {
}
if c.DNSConfig != nil {
dnsApp, err := c.DNSConfig.BuildV5(ctx)
dnsApp, err := loadHeterogeneousConfigFromRawJson("service", "dns", c.DNSConfig)
if err != nil {
return nil, newError("failed to parse DNS config").Base(err)
}

View File

@ -7,18 +7,16 @@ import (
"github.com/v2fly/v2ray-core/v4/infra/conf/cfgcommon/proxycfg"
"github.com/v2fly/v2ray-core/v4/infra/conf/cfgcommon/sniffer"
"github.com/v2fly/v2ray-core/v4/infra/conf/cfgcommon/socketcfg"
"github.com/v2fly/v2ray-core/v4/infra/conf/synthetic/dns"
"github.com/v2fly/v2ray-core/v4/infra/conf/synthetic/log"
"github.com/v2fly/v2ray-core/v4/infra/conf/synthetic/router"
)
type RootConfig struct {
LogConfig *log.LogConfig `json:"log"`
DNSConfig *dns.DNSConfig `json:"dns"`
RouterConfig *router.RouterConfig `json:"router"`
LogConfig json.RawMessage `json:"log"`
DNSConfig json.RawMessage `json:"dns"`
RouterConfig json.RawMessage `json:"router"`
Inbounds []InboundConfig `json:"inbounds"`
Outbounds []OutboundConfig `json:"outbounds"`
Services map[string]json.RawMessage `json:"services"`
Extensions []json.RawMessage `json:"extension"`
}
type InboundConfig struct {