From 94ab10fce3dacf80d3604c3cddd1eed4eb1346ab Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Sat, 10 Apr 2021 00:08:50 +0100 Subject: [PATCH] added json parser for multi fake dns pool --- infra/conf/fakedns.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/infra/conf/fakedns.go b/infra/conf/fakedns.go index 3d097f7fd..ab6aaa0be 100644 --- a/infra/conf/fakedns.go +++ b/infra/conf/fakedns.go @@ -6,12 +6,26 @@ import ( "github.com/v2fly/v2ray-core/v4/app/dns/fakedns" ) -type FakeDNSConfig struct { +type FakeDNSPoolElementConfig struct { IPPool string `json:"ipPool"` LruSize int64 `json:"poolSize"` } +type FakeDNSConfig struct { + IPPool string `json:"ipPool"` + LruSize int64 `json:"poolSize"` + Pools *[]FakeDNSPoolElementConfig `json:"pools,omitempty"` +} + func (f FakeDNSConfig) Build() (proto.Message, error) { + if f.Pools != nil { + fakeDNSPool := &fakedns.FakeDnsPoolMulti{} + for _, v := range *f.Pools { + fakeDNSPool.Pools = append(fakeDNSPool.Pools, &fakedns.FakeDnsPool{IpPool: v.IPPool, LruSize: v.LruSize}) + } + return fakeDNSPool, nil + } + return &fakedns.FakeDnsPool{ IpPool: f.IPPool, LruSize: f.LruSize,