diff options
author | Renato Botelho <renato@netgate.com> | 2015-11-30 16:03:23 -0200 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2015-11-30 16:03:23 -0200 |
commit | 03a4e05db7a26fe6db20b302b44fb2712116f064 (patch) | |
tree | bb8c272cf74b78759f97ea093e55d3b8043de8a5 /src | |
parent | 9defee3f8c3018a807131e702c2b82ce0a7eda9c (diff) | |
parent | f1f5005857280af5631d4506622f7d054c866715 (diff) | |
download | pfsense-03a4e05db7a26fe6db20b302b44fb2712116f064.zip pfsense-03a4e05db7a26fe6db20b302b44fb2712116f064.tar.gz |
Merge pull request #2091 from mb300sd/patch-2
Diffstat (limited to 'src')
-rw-r--r-- | src/etc/inc/interfaces.inc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index bad0bbf..8767615 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -808,6 +808,7 @@ function interface_gre_configure(&$gre, $grekey = "") { $realif = get_real_interface($gre['if']); $realifip = get_interface_ip($gre['if']); + $realifip6 = get_interface_ipv6($gre['if']); /* make sure the parent interface is up */ interfaces_bring_up($realif); @@ -821,7 +822,11 @@ function interface_gre_configure(&$gre, $grekey = "") { } /* Do not change the order here for more see gre(4) NOTES section. */ - mwexec("/sbin/ifconfig {$greif} tunnel {$realifip} " . escapeshellarg($gre['remote-addr'])); + if (is_ipaddrv6($gre['remote-addr'])) { + mwexec("/sbin/ifconfig {$greif} inet6 tunnel {$realifip6} " . escapeshellarg($gre['remote-addr'])); + }else{ + mwexec("/sbin/ifconfig {$greif} tunnel {$realifip} " . escapeshellarg($gre['remote-addr'])); + } if ((is_ipaddrv6($gre['tunnel-local-addr'])) || (is_ipaddrv6($gre['tunnel-remote-addr']))) { /* XXX: The prefixlen argument for tunnels of ipv6 is useless since it needs to be 128 as enforced by kernel */ //mwexec("/sbin/ifconfig {$greif} inet6 " . escapeshellarg($gre['tunnel-local-addr']) . " " . escapeshellarg($gre['tunnel-remote-addr']) . " prefixlen /" . escapeshellarg($gre['tunnel-remote-net'])); @@ -937,7 +942,11 @@ function interface_gif_configure(&$gif, $gifkey = "") { } /* Do not change the order here for more see gif(4) NOTES section. */ - mwexec("/sbin/ifconfig {$gifif} tunnel {$realifip} " . escapeshellarg($gif['remote-addr'])); + if (is_ipaddrv6($gif['remote-addr'])) { + mwexec("/sbin/ifconfig {$gifif} inet6 tunnel {$realifip} " . escapeshellarg($gif['remote-addr'])); + } else { + mwexec("/sbin/ifconfig {$gifif} tunnel {$realifip} " . escapeshellarg($gif['remote-addr'])); + } if ((is_ipaddrv6($gif['tunnel-local-addr'])) || (is_ipaddrv6($gif['tunnel-remote-addr']))) { /* XXX: The prefixlen argument for tunnels of ipv6 is useless since it needs to be 128 as enforced by kernel */ //mwexec("/sbin/ifconfig {$gifif} inet6 " . escapeshellarg($gif['tunnel-local-addr']) . " " . escapeshellarg($gif['tunnel-remote-addr']) . " prefixlen /" . escapeshellarg($gif['tunnel-remote-net'])); |