[Dnsmasq-discuss] [PATCH] decrease the amount of individual sites listed in log

Simon Kelley simon at thekelleys.org.uk
Sat Feb 11 13:45:53 GMT 2017


Patch applied. Many thanks.


Cheers,

Simon.

On 07/02/17 18:03, Hannu Nyman wrote:
> By default 30 first servers are listed individually to system log, and
> then a count of the remaining items. With e.g. a NXDOMAIN based adblock
> service, dnsmasq lists 30 unnecessary ad sites every time when dnsmasq
> evaluates the list. But the actual nameservers in use are evaluated last
> and are not displayed as they get included in the "remaining items" total.
> 
> Handle the "local addresses only" separately and list only a few of them.
> Remove the "local addresses only" from the general count.
> 
> Signed-off-by: Hannu Nyman <hannu.nyman at iki.fi>
> ---
> 
> --- a/src/config.h
> +++ b/src/config.h
> @@ -27,6 +27,7 @@
>  #define FORWARD_TEST 50 /* try all servers every 50 queries */
>  #define FORWARD_TIME 20 /* or 20 seconds */
>  #define SERVERS_LOGGED 30 /* Only log this many servers when logging state */
> +#define LOCALS_LOGGED 8 /* Only log this many local addresses when logging state */
>  #define RANDOM_SOCKS 64 /* max simultaneous random ports */
>  #define LEASE_RETRY 60 /* on error, retry writing leasefile after LEASE_RETRY seconds */
>  #define CACHESIZ 150 /* default cache size */
> --- a/src/network.c
> +++ b/src/network.c
> @@ -1438,6 +1438,7 @@ void check_servers(void)
>    struct server *serv;
>    struct serverfd *sfd, *tmp, **up;
>    int port = 0, count;
> +  int locals = 0;
>  
>    /* interface may be new since startup */
>    if (!option_bool(OPT_NOWILD))
> @@ -1541,7 +1542,11 @@ void check_servers(void)
>  		s1 = _("domain"), s2 = serv->domain;
>  	      
>  	      if (serv->flags & SERV_NO_ADDR)
> -		my_syslog(LOG_INFO, _("using local addresses only for %s %s"), s1, s2);
> +		{
> +		  count--;
> +		  if (++locals <= LOCALS_LOGGED)
> +			my_syslog(LOG_INFO, _("using local addresses only for %s %s"), s1, s2);
> +	        }
>  	      else if (serv->flags & SERV_USE_RESOLV)
>  		my_syslog(LOG_INFO, _("using standard nameservers for %s %s"), s1, s2);
>  	      else 
> @@ -1558,6 +1563,8 @@ void check_servers(void)
>  	}
>      }
>    
> +  if (locals > LOCALS_LOGGED)
> +    my_syslog(LOG_INFO, _("using %d more local addresses"), locals - LOCALS_LOGGED);
>    if (count - 1 > SERVERS_LOGGED)
>      my_syslog(LOG_INFO, _("using %d more nameservers"), count - SERVERS_LOGGED - 1);
>  
> 




More information about the Dnsmasq-discuss mailing list