summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-01-28 13:53:49 -0200
committerRenato Botelho <renato@netgate.com>2016-01-28 13:54:34 -0200
commit138e4140b740801aa8cdd568bf07021c22eade10 (patch)
tree245c38aa4cd60fec38703be0666b807631baa370 /src
parentc607951756335c1e6f7fc79ad795865446510484 (diff)
downloadpfsense-138e4140b740801aa8cdd568bf07021c22eade10.zip
pfsense-138e4140b740801aa8cdd568bf07021c22eade10.tar.gz
Remove static routes to DNS servers when gateway is disabled. It should fix #4921
Diffstat (limited to 'src')
-rw-r--r--src/etc/inc/system.inc22
-rw-r--r--src/usr/local/www/system_gateways.php1
2 files changed, 15 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}");
}
}
}
diff --git a/src/usr/local/www/system_gateways.php b/src/usr/local/www/system_gateways.php
index f94081b..29293b9 100644
--- a/src/usr/local/www/system_gateways.php
+++ b/src/usr/local/www/system_gateways.php
@@ -88,6 +88,7 @@ if ($_POST) {
$retval = 0;
$retval = system_routing_configure();
+ $retval |= system_resolvconf_generate();
$retval |= filter_configure();
/* reconfigure our gateway monitor */
setup_gateways_monitor();
OpenPOWER on IntegriCloud