summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeth Mos <seth.mos@dds.nl>2011-05-10 08:40:30 +0000
committerSeth Mos <seth.mos@dds.nl>2011-05-10 08:40:30 +0000
commit0d6dedb9effb59e903a9b4e97f70839645a26f65 (patch)
treee877b4518f5476c630e6c0a895f0756e580deae2
parentbfb3e7174a36490ddb6af768839bc04a7637325d (diff)
downloadpfsense-0d6dedb9effb59e903a9b4e97f70839645a26f65.zip
pfsense-0d6dedb9effb59e903a9b4e97f70839645a26f65.tar.gz
Prevent incorrect rtadvd.conf generation if the prefix is not yet set on the LAN interface
-rw-r--r--etc/inc/services.inc20
1 files changed, 12 insertions, 8 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index 7a56d4f..246ca98 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -87,7 +87,6 @@ EOD;
if($dhcpv6ifconf['mode'] == "disabled")
continue;
- $rtadvdnum++;
$realif = get_real_interface($dhcpv6if);
$rtadvdifs[] = $realif;
@@ -96,6 +95,7 @@ EOD;
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
$subnetmaskv6 = gen_subnet_mask($ifcfgsnv6);
+ $rtadvdconf .= "# Generated for DHCPv6 Server $dhcpv6if\n";
$rtadvdconf .= "{$realif}:\\\n";
$rtadvdconf .= "\t:addr=\"{$subnetv6}\":\\\n";
$rtadvdconf .= "\t:prefixlen#{$ifcfgsnv6}:\\\n";
@@ -113,13 +113,13 @@ EOD;
}
$rtadvdconf .= "\t:tc=ether:\n";
$rtadvdconf .= "\n\n";
+ $rtadvdnum++;
}
foreach ($Iflist as $if => $ifdescr) {
if(!is_numeric($config['interfaces'][$if]['dhcp6-pd-sla-id']))
continue;
- $rtadvdnum++;
$realif = get_real_interface($if);
$rtadvdifs[] = $realif;
@@ -128,12 +128,16 @@ EOD;
$subnetv6 = gen_subnetv6($ifcfgipv6, $ifcfgsnv6);
$subnetmaskv6 = gen_subnet_mask($ifcfgsnv6);
- $rtadvdconf .= "{$realif}:\\\n";
- $rtadvdconf .= "\t:addr=\"{$subnetv6}\":\\\n";
- $rtadvdconf .= "\t:prefixlen#{$ifcfgsnv6}:\\\n";
- $rtadvdconf .= "\t:raflags=\"mo\":\\\n";
- $rtadvdconf .= "\t:tc=ether:\n";
- $rtadvdconf .= "\n\n";
+ if(is_ipaddrv6($subnetv6)) {
+ $rtadvdconf .= "# Generated for DHCP-PD delegation $if\n";
+ $rtadvdconf .= "{$realif}:\\\n";
+ $rtadvdconf .= "\t:addr=\"{$subnetv6}\":\\\n";
+ $rtadvdconf .= "\t:prefixlen#{$ifcfgsnv6}:\\\n";
+ $rtadvdconf .= "\t:raflags=\"mo\":\\\n";
+ $rtadvdconf .= "\t:tc=ether:\n";
+ $rtadvdconf .= "\n\n";
+ $rtadvdnum++;
+ }
}
fwrite($fd, $rtadvdconf);
OpenPOWER on IntegriCloud