1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-09-28 23:06:14 -04: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 var logConfMsg *anypb.Any
if c.LogConfig != nil { 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 { } else {
logConfMsg = serial.ToTypedMessage(log.DefaultLogConfig()) 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...) config.App = append([]*anypb.Any{logConfMsg}, config.App...)
if c.RouterConfig != nil { if c.RouterConfig != nil {
routerConfig, err := c.RouterConfig.BuildV5(ctx) routerConfig, err := loadHeterogeneousConfigFromRawJson("service", "router", c.RouterConfig)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -43,7 +47,7 @@ func (c RootConfig) BuildV5(ctx context.Context) (proto.Message, error) {
} }
if c.DNSConfig != nil { if c.DNSConfig != nil {
dnsApp, err := c.DNSConfig.BuildV5(ctx) dnsApp, err := loadHeterogeneousConfigFromRawJson("service", "dns", c.DNSConfig)
if err != nil { if err != nil {
return nil, newError("failed to parse DNS config").Base(err) 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/proxycfg"
"github.com/v2fly/v2ray-core/v4/infra/conf/cfgcommon/sniffer" "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/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 { type RootConfig struct {
LogConfig *log.LogConfig `json:"log"` LogConfig json.RawMessage `json:"log"`
DNSConfig *dns.DNSConfig `json:"dns"` DNSConfig json.RawMessage `json:"dns"`
RouterConfig *router.RouterConfig `json:"router"` RouterConfig json.RawMessage `json:"router"`
Inbounds []InboundConfig `json:"inbounds"` Inbounds []InboundConfig `json:"inbounds"`
Outbounds []OutboundConfig `json:"outbounds"` Outbounds []OutboundConfig `json:"outbounds"`
Services map[string]json.RawMessage `json:"services"` Services map[string]json.RawMessage `json:"services"`
Extensions []json.RawMessage `json:"extension"`
} }
type InboundConfig struct { type InboundConfig struct {