From 138e4140b740801aa8cdd568bf07021c22eade10 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Thu, 28 Jan 2016 13:53:49 -0200 Subject: Remove static routes to DNS servers when gateway is disabled. It should fix #4921 --- src/etc/inc/system.inc | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/etc') diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index cb81567..4806407 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -244,16 +244,22 @@ function system_resolvconf_generate($dynupdate = false) { } $gwname = $config['system'][$dnsgw]; $gatewayip = lookup_gateway_ip_by_name($gwname); - $inet = is_ipaddrv6($gatewayip) ? '-inet6 ' : ''; + $inet6 = is_ipaddrv6($gatewayip) ? '-inet6 ' : ''; + /* dns server array starts at 0 */ + $dnsserver = $syscfg['dnsserver'][$dnscounter - 1]; if (is_ipaddr($gatewayip)) { - /* dns server array starts at 0 */ - $dnscountermo = $dnscounter - 1; - mwexec("/sbin/route change -host " . $inet . $syscfg['dnsserver'][$dnscountermo] . " {$gatewayip}"); - if (isset($config['system']['route-debug'])) { - $mt = microtime(); - log_error("ROUTING debug: $mt - route change -host {$inet} {$syscfg['dnsserver'][$dnscountermo]} $gatewayip "); - } + $cmd = 'change'; + } else { + /* Remove old route when disable gw */ + $cmd = 'delete'; + $gatewayip = ''; + } + + mwexec("/sbin/route {$cmd} -host {$inet6}{$dnsserver} {$gatewayip}"); + if (isset($config['system']['route-debug'])) { + $mt = microtime(); + log_error("ROUTING debug: $mt - route {$cmd} -host {$inet6}{$dnsserver} {$gatewayip}"); } } } -- cgit v1.1