diff options
author | Renato Botelho <renato@netgate.com> | 2016-01-28 13:53:49 -0200 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-01-28 13:54:34 -0200 |
commit | 138e4140b740801aa8cdd568bf07021c22eade10 (patch) | |
tree | 245c38aa4cd60fec38703be0666b807631baa370 /src/etc | |
parent | c607951756335c1e6f7fc79ad795865446510484 (diff) | |
download | pfsense-138e4140b740801aa8cdd568bf07021c22eade10.zip pfsense-138e4140b740801aa8cdd568bf07021c22eade10.tar.gz |
Remove static routes to DNS servers when gateway is disabled. It should fix #4921
Diffstat (limited to 'src/etc')
-rw-r--r-- | src/etc/inc/system.inc | 22 |
1 files changed, 14 insertions, 8 deletions
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}"); } } } |