summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/system.inc
diff options
context:
space:
mode:
authorPiBa-NL <pba_2k3@yahoo.com>2015-11-26 00:14:26 +0100
committerPiBa-NL <pba_2k3@yahoo.com>2015-11-26 00:14:26 +0100
commitde34f1fc12f29db0348f8ff9b1bc8300d9fb74d2 (patch)
tree77bc38448d8145cf0d76646c3606596d27e3ef39 /src/etc/inc/system.inc
parentc64e401c85f3ef081a8c6b9e4a8d0a4b4a9835f7 (diff)
downloadpfsense-de34f1fc12f29db0348f8ff9b1bc8300d9fb74d2.zip
pfsense-de34f1fc12f29db0348f8ff9b1bc8300d9fb74d2.tar.gz
Allow gateway outside interface subnet. Fixes #972, #1847, and was checked (on 2.2.5) with that provider to work properly for the IPv4 part. In 2.3 test machine IPv6 also seems to insert the proper routes.
Diffstat (limited to 'src/etc/inc/system.inc')
-rw-r--r--src/etc/inc/system.inc18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc
index 7b40de1..ce58b10 100644
--- a/src/etc/inc/system.inc
+++ b/src/etc/inc/system.inc
@@ -586,6 +586,24 @@ function system_routing_configure($interface = "") {
}
}
+ $gateways_arr = return_gateways_array(false, true);
+ foreach($gateways_arr as $gateway) {
+ // setup static interface routes for nonlocal gateways
+ if (isset($gateway["nonlocalgateway"])) {
+ $srgatewayip = $gateway['gateway'];
+ $srinterfacegw = $gateway['interface'];
+ if (is_ipaddr($srgatewayip) && !empty($srinterfacegw)) {
+ $inet = (!is_ipaddrv4($srgatewayip) ? "-inet6" : "-inet");
+ $cmd = "/sbin/route change {$inet} " . escapeshellarg($srgatewayip) . " ";
+ mwexec($cmd . "-iface " . escapeshellarg($srinterfacegw));
+ if (isset($config['system']['route-debug'])) {
+ $mt = microtime();
+ log_error("ROUTING debug: $mt - $cmd -iface $srinterfacegw ");
+ }
+ }
+ }
+ }
+
if ($dont_add_route == false) {
if (!empty($interface) && $interface != $interfacegw) {
;
OpenPOWER on IntegriCloud