@@ -156,6 +156,7 @@ type DNS struct {
156
156
EnhancedMode C.DNSMode
157
157
DefaultNameserver []dns.NameServer
158
158
CacheAlgorithm string
159
+ CacheMaxSize int
159
160
FakeIPRange * fakeip.Pool
160
161
Hosts * trie.DomainTrie [resolver.HostValue ]
161
162
NameServerPolicy []dns.Policy
@@ -223,6 +224,7 @@ type RawDNS struct {
223
224
FakeIPFilterMode C.FilterMode `yaml:"fake-ip-filter-mode" json:"fake-ip-filter-mode"`
224
225
DefaultNameserver []string `yaml:"default-nameserver" json:"default-nameserver"`
225
226
CacheAlgorithm string `yaml:"cache-algorithm" json:"cache-algorithm"`
227
+ CacheMaxSize int `yaml:"cache-max-size" json:"cache-max-size"`
226
228
NameServerPolicy * orderedmap.OrderedMap [string , any ] `yaml:"nameserver-policy" json:"nameserver-policy"`
227
229
ProxyServerNameserver []string `yaml:"proxy-server-nameserver" json:"proxy-server-nameserver"`
228
230
DirectNameServer []string `yaml:"direct-nameserver" json:"direct-nameserver"`
@@ -1352,6 +1354,8 @@ func parseDNS(rawCfg *RawConfig, hosts *trie.DomainTrie[resolver.HostValue], rul
1352
1354
IPv6 : cfg .IPv6 ,
1353
1355
UseSystemHosts : cfg .UseSystemHosts ,
1354
1356
EnhancedMode : cfg .EnhancedMode ,
1357
+ CacheAlgorithm : cfg .CacheAlgorithm ,
1358
+ CacheMaxSize : cfg .CacheMaxSize ,
1355
1359
}
1356
1360
var err error
1357
1361
if dnsCfg .NameServer , err = parseNameServer (cfg .NameServer , cfg .RespectRules , cfg .PreferH3 ); err != nil {
@@ -1485,12 +1489,6 @@ func parseDNS(rawCfg *RawConfig, hosts *trie.DomainTrie[resolver.HostValue], rul
1485
1489
dnsCfg .Hosts = hosts
1486
1490
}
1487
1491
1488
- if cfg .CacheAlgorithm == "" || cfg .CacheAlgorithm == "lru" {
1489
- dnsCfg .CacheAlgorithm = "lru"
1490
- } else {
1491
- dnsCfg .CacheAlgorithm = "arc"
1492
- }
1493
-
1494
1492
return dnsCfg , nil
1495
1493
}
1496
1494
0 commit comments