From e161d6cc1fa85d7fa9cfa5cea5d69f703cced330 Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Sat, 20 Mar 2021 15:10:17 +0000 Subject: [PATCH] added parsing of browser forwarder config --- infra/conf/browser_forwarder.go | 18 ++++++++++++++++++ infra/conf/v2ray.go | 31 ++++++++++++++++++++----------- 2 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 infra/conf/browser_forwarder.go diff --git a/infra/conf/browser_forwarder.go b/infra/conf/browser_forwarder.go new file mode 100644 index 000000000..ca3c138de --- /dev/null +++ b/infra/conf/browser_forwarder.go @@ -0,0 +1,18 @@ +package conf + +import ( + "github.com/golang/protobuf/proto" + "github.com/v2fly/v2ray-core/v4/app/browserforwarder" +) + +type BrowserForwarderConfig struct { + ListenAddr string `json:"listenAddr"` + ListenPort int32 `json:"listenPort"` +} + +func (b BrowserForwarderConfig) Build() (proto.Message, error) { + return &browserforwarder.Config{ + ListenAddr: b.ListenAddr, + ListenPort: b.ListenPort, + }, nil +} diff --git a/infra/conf/v2ray.go b/infra/conf/v2ray.go index 55bda336d..9a6f2e0c7 100644 --- a/infra/conf/v2ray.go +++ b/infra/conf/v2ray.go @@ -341,17 +341,18 @@ type Config struct { // and should not be used. OutboundDetours []OutboundDetourConfig `json:"outboundDetour"` - LogConfig *LogConfig `json:"log"` - RouterConfig *RouterConfig `json:"routing"` - DNSConfig *DNSConfig `json:"dns"` - InboundConfigs []InboundDetourConfig `json:"inbounds"` - OutboundConfigs []OutboundDetourConfig `json:"outbounds"` - Transport *TransportConfig `json:"transport"` - Policy *PolicyConfig `json:"policy"` - API *APIConfig `json:"api"` - Stats *StatsConfig `json:"stats"` - Reverse *ReverseConfig `json:"reverse"` - FakeDNS *FakeDNSConfig `json:"fakeDns"` + LogConfig *LogConfig `json:"log"` + RouterConfig *RouterConfig `json:"routing"` + DNSConfig *DNSConfig `json:"dns"` + InboundConfigs []InboundDetourConfig `json:"inbounds"` + OutboundConfigs []OutboundDetourConfig `json:"outbounds"` + Transport *TransportConfig `json:"transport"` + Policy *PolicyConfig `json:"policy"` + API *APIConfig `json:"api"` + Stats *StatsConfig `json:"stats"` + Reverse *ReverseConfig `json:"reverse"` + FakeDNS *FakeDNSConfig `json:"fakeDns"` + BrowserForwarder *BrowserForwarderConfig `json:"browserForwarder"` } func (c *Config) findInboundTag(tag string) int { @@ -558,6 +559,14 @@ func (c *Config) Build() (*core.Config, error) { config.App = append(config.App, serial.ToTypedMessage(r)) } + if c.BrowserForwarder != nil { + r, err := c.BrowserForwarder.Build() + if err != nil { + return nil, err + } + config.App = append(config.App, serial.ToTypedMessage(r)) + } + var inbounds []InboundDetourConfig if c.InboundConfig != nil {