summaryrefslogtreecommitdiffstats
path: root/usr/local/www/services_router_advertisements.php
diff options
context:
space:
mode:
authorDarren Embry <dse@webonastick.com>2012-06-08 18:04:41 -0400
committerDarren Embry <dse@webonastick.com>2012-06-08 18:05:56 -0400
commit163e4b91b10fd54374d69b02cb6caad5db262842 (patch)
tree78e64ec7fb49683337100b3862cbcbcb0c0ea9c5 /usr/local/www/services_router_advertisements.php
parent4e0fc44f793956447ebdc0ff4e01a71900c84bd5 (diff)
downloadpfsense-163e4b91b10fd54374d69b02cb6caad5db262842.zip
pfsense-163e4b91b10fd54374d69b02cb6caad5db262842.tar.gz
actually update RA DNS settings now
finishes #2361
Diffstat (limited to 'usr/local/www/services_router_advertisements.php')
-rw-r--r--usr/local/www/services_router_advertisements.php25
1 files changed, 25 insertions, 0 deletions
diff --git a/usr/local/www/services_router_advertisements.php b/usr/local/www/services_router_advertisements.php
index 42622dd..02beae2 100644
--- a/usr/local/www/services_router_advertisements.php
+++ b/usr/local/www/services_router_advertisements.php
@@ -95,6 +95,9 @@ if (is_array($config['dhcpdv6'][$if])){
if($pconfig['rapriority'] == "")
$pconfig['rapriority'] = "medium";
$pconfig['rainterface'] = $config['dhcpdv6'][$if]['rainterface'];
+ $pconfig['radomainsearchlist'] = $config['dhcpdv6'][$if]['radomainsearchlist'];
+ list($pconfig['radns1'],$pconfig['radns2']) = $config['dhcpdv6'][$if]['radnsserver'];
+ $pconfig['rasamednsasdhcp6'] = isset($config['dhcpdv6'][$if]['rasamednsasdhcp6']);
}
$advertise_modes = array("disabled" => "Disabled",
@@ -113,6 +116,19 @@ if ($_POST) {
$pconfig = $_POST;
+ /* input validation */
+ if (($_POST['radns1'] && !is_ipaddrv6($_POST['radns1'])) || ($_POST['radns2'] && !is_ipaddrv6($_POST['radns2'])))
+ $input_errors[] = gettext("A valid IPv6 address must be specified for the primary/secondary DNS servers.");
+ if ($_POST['radomainsearchlist']) {
+ $domain_array=preg_split("/[ ;]+/",$_POST['radomainsearchlist']);
+ foreach ($domain_array as $curdomain) {
+ if (!is_domain($curdomain)) {
+ $input_errors[] = gettext("A valid domain search list must be specified.");
+ break;
+ }
+ }
+ }
+
if (!$input_errors) {
if (!is_array($config['dhcpdv6'][$if]))
$config['dhcpdv6'][$if] = array();
@@ -121,6 +137,15 @@ if ($_POST) {
$config['dhcpdv6'][$if]['rapriority'] = $_POST['rapriority'];
$config['dhcpdv6'][$if]['rainterface'] = $_POST['rainterface'];
+ $config['dhcpdv6'][$if]['radomainsearchlist'] = $_POST['radomainsearchlist'];
+ unset($config['dhcpdv6'][$if]['radnsserver']);
+ if ($_POST['radns1'])
+ $config['dhcpdv6'][$if]['radnsserver'][] = $_POST['radns1'];
+ if ($_POST['radns2'])
+ $config['dhcpdv6'][$if]['radnsserver'][] = $_POST['radns2'];
+
+ $config['dhcpdv6'][$if]['rasamednsasdhcp6'] = ($_POST['rasamednsasdhcp6']) ? true : false;
+
write_config();
$retval = services_radvd_configure();
$savemsg = get_std_save_message($retval);
OpenPOWER on IntegriCloud