summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2013-06-10 20:43:28 +0000
committerErmal <eri@pfsense.org>2013-06-10 20:43:42 +0000
commit89784e551b60985a28b977822acad62b36792aa3 (patch)
tree6d6de52799943e93069aac558a7afa7ff632c3b3
parent39b84ccc7f00edbf87bb32bd950d42643897d7b5 (diff)
downloadpfsense-89784e551b60985a28b977822acad62b36792aa3.zip
pfsense-89784e551b60985a28b977822acad62b36792aa3.tar.gz
Do better checks and do not include an interface that will be skipped to the known ifaces
-rw-r--r--etc/inc/services.inc87
1 files changed, 42 insertions, 45 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index 5949c1e..60e78f8 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -94,9 +94,8 @@ function services_radvd_configure() {
}
$realif = get_real_interface($dhcpv6if);
- if (in_array($realif, $radvdifs))
+ if (isset($radvdifs[$realif]))
continue;
- $radvdifs[] = $realif;
$ifcfgipv6 = get_interface_ipv6($dhcpv6if);
if (!is_ipaddrv6($ifcfgipv6))
@@ -104,6 +103,7 @@ function services_radvd_configure() {
$ifcfgsnv6 = get_interface_subnetv6($dhcpv6if);
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
+ $radvdifs[$realif] = $realif;
$radvdconf .= "# Generated for DHCPv6 Server $dhcpv6if\n";
$radvdconf .= "interface {$realif} {\n";
@@ -212,10 +212,13 @@ function services_radvd_configure() {
continue;
if(!isset($config['interfaces'][$if]['enable']))
continue;
-
+ $trackif = $config['interfaces'][$if]['track6-interface'];
+ if (empty($config['interfaces'][$trackif]))
+ continue;
+
$realif = get_real_interface($if);
/* prevent duplicate entries, manual overrides */
- if(in_array($realif, $radvdifs))
+ if (isset($radvdifs[$realif]))
continue;
$ifcfgipv6 = get_interface_ipv6($if);
@@ -224,55 +227,49 @@ function services_radvd_configure() {
$ifcfgsnv6 = get_interface_subnetv6($if);
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
- $trackif = $config['interfaces'][$if]['track6-interface'];
- if (empty($config['interfaces'][$trackif]))
- continue;
- $radvdifs[] = $realif;
+ $radvdifs[$realif] = $realif;
$autotype = $config['interfaces'][$trackif]['ipaddrv6'];
if ($g['debug'])
log_error("configuring RA on {$if} for type {$autotype} radvd subnet {$subnetv6}/{$ifcfgsnv6}");
+ $radvdconf .= "# Generated config for {$autotype} delegation from {$trackif} on {$if}\n";
+ $radvdconf .= "interface {$realif} {\n";
+ $radvdconf .= "\tAdvSendAdvert on;\n";
+ $radvdconf .= "\tMinRtrAdvInterval 3;\n";
+ $radvdconf .= "\tMaxRtrAdvInterval 10;\n";
+ $mtu = get_interface_mtu($realif);
+ if (is_numeric($mtu))
+ $radvdconf .= "\tAdvLinkMTU {$mtu};\n";
+ else
+ $radvdconf .= "\tAdvLinkMTU 1280;\n";
+ $radvdconf .= "\tAdvOtherConfigFlag on;\n";
+ $radvdconf .= "\t\tprefix {$subnetv6}/{$ifcfgsnv6} {\n";
+ $radvdconf .= "\t\tAdvOnLink on;\n";
+ $radvdconf .= "\t\tAdvAutonomous on;\n";
+ $radvdconf .= "\t\tAdvRouterAddr on;\n";
+ $radvdconf .= "\t};\n";
+
+ /* add DNS servers */
$dnslist = array();
- if(is_ipaddrv6($ifcfgipv6)) {
- $radvdconf .= "# Generated config for {$autotype} delegation from {$trackif} on {$if}\n";
- $radvdconf .= "interface {$realif} {\n";
- $radvdconf .= "\tAdvSendAdvert on;\n";
- $radvdconf .= "\tMinRtrAdvInterval 3;\n";
- $radvdconf .= "\tMaxRtrAdvInterval 10;\n";
- $mtu = get_interface_mtu($realif);
- if (is_numeric($mtu))
- $radvdconf .= "\tAdvLinkMTU {$mtu};\n";
- else
- $radvdconf .= "\tAdvLinkMTU 1280;\n";
- $radvdconf .= "\tAdvOtherConfigFlag on;\n";
- $radvdconf .= "\t\tprefix {$subnetv6}/{$ifcfgsnv6} {\n";
- $radvdconf .= "\t\tAdvOnLink on;\n";
- $radvdconf .= "\t\tAdvAutonomous on;\n";
- $radvdconf .= "\t\tAdvRouterAddr on;\n";
- $radvdconf .= "\t};\n";
-
- /* add DNS servers */
- $dnslist = array();
- if (isset($config['dnsmasq']['enable'])) {
- $dnslist[] = $ifcfgipv6;
- } elseif (is_array($config['system']['dnsserver']) && !empty($config['system']['dnsserver'])) {
- foreach($config['system']['dnsserver'] as $server) {
- if(is_ipaddrv6($server))
- $dnslist[] = $server;
- }
- }
- if (count($dnslist) > 0) {
- $dnsstring = implode(" ", $dnslist);
- if (!empty($dnsstring))
- $radvdconf .= "\tRDNSS {$dnsstring} { };\n";
- }
- if (!empty($config['system']['domain'])) {
- $radvdconf .= "\tDNSSL {$config['system']['domain']} { };\n";
- }
- $radvdconf .= "};\n";
+ if (isset($config['dnsmasq']['enable'])) {
+ $dnslist[] = $ifcfgipv6;
+ } elseif (is_array($config['system']['dnsserver']) && !empty($config['system']['dnsserver'])) {
+ foreach($config['system']['dnsserver'] as $server) {
+ if(is_ipaddrv6($server))
+ $dnslist[] = $server;
+ }
+ }
+ if (count($dnslist) > 0) {
+ $dnsstring = implode(" ", $dnslist);
+ if (!empty($dnsstring))
+ $radvdconf .= "\tRDNSS {$dnsstring} { };\n";
+ }
+ if (!empty($config['system']['domain'])) {
+ $radvdconf .= "\tDNSSL {$config['system']['domain']} { };\n";
}
+ $radvdconf .= "};\n";
}
/* write radvd.conf */
OpenPOWER on IntegriCloud