From 4a4b0b8e7f816e58b6e372e69dac1332c28093af Mon Sep 17 00:00:00 2001 From: Fedor Date: Tue, 12 Oct 2010 02:35:33 -0400 Subject: [PATCH] rc: Dnsmasq config optimization, allow to specify DNS cache size --- release/src/router/httpd/tomato.c | 1 + release/src/router/nvram/defaults.c | 1 + release/src/router/rc/services.c | 4 ++++ release/src/router/www/advanced-dhcpdns.asp | 9 ++++++++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/release/src/router/httpd/tomato.c b/release/src/router/httpd/tomato.c index 57b61a8b05..8222de7fd5 100644 --- a/release/src/router/httpd/tomato.c +++ b/release/src/router/httpd/tomato.c @@ -625,6 +625,7 @@ static const nvset_t nvset_list[] = { { "dhcpd_gwmode", V_NUM }, { "dns_addget", V_01 }, { "dns_intcpt", V_01 }, + { "dns_cache", V_NUM }, { "dhcpc_minpkt", V_01 }, { "dhcpc_vendorclass", V_LENGTH(0, 80) }, { "dhcpc_requestip", V_LENGTH(0, 16) }, diff --git a/release/src/router/nvram/defaults.c b/release/src/router/nvram/defaults.c index 42ec0e2b45..5e63747bc7 100644 --- a/release/src/router/nvram/defaults.c +++ b/release/src/router/nvram/defaults.c @@ -365,6 +365,7 @@ const defaults_t defaults[] = { { "dhcpd_lmax", "" }, { "dns_addget", "0" }, { "dns_intcpt", "0" }, + { "dns_cache", "4096" }, // DNS cache size (0 to disable cache) { "dhcpc_minpkt", "1" }, { "dhcpc_vendorclass", "" }, { "dhcpc_requestip", "" }, diff --git a/release/src/router/rc/services.c b/release/src/router/rc/services.c index 5f1cf074a3..0a02c51c5e 100644 --- a/release/src/router/rc/services.c +++ b/release/src/router/rc/services.c @@ -111,10 +111,14 @@ void start_dnsmasq() if (((nv = nvram_get("dns_minport")) != NULL) && (*nv)) n = atoi(nv); else n = 4096; fprintf(f, + "all-servers\n" // query all servers by default (use strict-order to override) + "cache-size=%d\n" // dns cache size (0 to disable cache) + "log-async\n" // enable asynchronous logging (default queue length = 5) "resolv-file=%s\n" // the real stuff is here "addn-hosts=%s\n" // " "expand-hosts\n" // expand hostnames in hosts file "min-port=%u\n", // min port used for random src port + nvram_get_int("dns_cache"), dmresolv, dmhosts, n); do_dns = nvram_match("dhcpd_dmdns", "1"); diff --git a/release/src/router/www/advanced-dhcpdns.asp b/release/src/router/www/advanced-dhcpdns.asp index 3d4beeeb92..65c89da1a9 100644 --- a/release/src/router/www/advanced-dhcpdns.asp +++ b/release/src/router/www/advanced-dhcpdns.asp @@ -29,7 +29,7 @@ textarea {