From 36c25a8f9c40a47a9bcba500c9c413dbd1a2b9d0 Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 20 Jul 2019 15:14:40 +0800 Subject: [PATCH] add an option to set cache size --- cmd/tun2socks/main.go | 1 + cmd/tun2socks/main_fakedns.go | 3 ++- common/dns/fakedns/server.go | 6 ++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/tun2socks/main.go b/cmd/tun2socks/main.go index 72f1a9c..087da93 100644 --- a/cmd/tun2socks/main.go +++ b/cmd/tun2socks/main.go @@ -50,6 +50,7 @@ type CmdArgs struct { FakeIPRange *string FakeDnsAddr *string FakeDnsHosts *string + DnsCacheSize *int ExceptionApps *string ExceptionSendThrough *string Stats *bool diff --git a/cmd/tun2socks/main_fakedns.go b/cmd/tun2socks/main_fakedns.go index f5c71bc..31c58e3 100644 --- a/cmd/tun2socks/main_fakedns.go +++ b/cmd/tun2socks/main_fakedns.go @@ -13,10 +13,11 @@ func init() { args.FakeDnsAddr = flag.String("fakeDnsAddr", ":53", "listen address of fake DNS") args.FakeIPRange = flag.String("fakeIPRange", "198.18.0.1/16", "fake IP CIDR range for DNS") args.FakeDnsHosts = flag.String("fakeDnsHosts", "", "Hosts mapping, e.g. 'a.com=1.1.1.1,b.net=2.2.2.2'") + args.DnsCacheSize = flag.Int("dnsCacheSize", 100, "Size of LRU-Cache to store DNS msg") addPostFlagsInitFn(func() { if *args.EnableFakeDns { - fakeDnsServer, err := fakedns.NewServer(*args.FakeIPRange, *args.FakeDnsHosts) + fakeDnsServer, err := fakedns.NewServer(*args.FakeIPRange, *args.FakeDnsHosts, *args.DnsCacheSize) if err != nil { panic("create fake dns server error") } diff --git a/common/dns/fakedns/server.go b/common/dns/fakedns/server.go index 3a60c49..11094b2 100644 --- a/common/dns/fakedns/server.go +++ b/common/dns/fakedns/server.go @@ -18,8 +18,6 @@ const ( // var cacheDuration = time.Duration(dnsDefaultTTL) * time.Second -var cacheSize = 100 - type Server struct { *D.Server c *cache.Cache @@ -68,7 +66,7 @@ func (s *Server) IPToHost(ip net.IP) (string, bool) { return strings.TrimRight(fqdn, "."), true } -func NewServer(fakeIPRange, hostsLine string) (*Server, error) { +func NewServer(fakeIPRange, hostsLine string, size int) (*Server, error) { _, ipnet, err := net.ParseCIDR(fakeIPRange) if err != nil { return nil, err @@ -79,7 +77,7 @@ func NewServer(fakeIPRange, hostsLine string) (*Server, error) { } hosts := lineToHosts(hostsLine) - cacheItem := cache.New(cacheSize) + cacheItem := cache.New(size) handler := newHandler(hosts, cacheItem, pool) return &Server{