summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2012-09-26 15:41:49 -0400
committerjim-p <jimp@pfsense.org>2012-09-26 15:41:49 -0400
commitd7402222e3be4794b15c7bad89797f7725590a9f (patch)
treecbe8d409965408e9c3a33883e7bf739035ff56b7
parent3b15c32ca362bc46729d5b652ea5e6dad5650786 (diff)
downloadpfsense-d7402222e3be4794b15c7bad89797f7725590a9f.zip
pfsense-d7402222e3be4794b15c7bad89797f7725590a9f.tar.gz
Add option to separately specify the split dns domain list for IPsec mobile clients.
-rwxr-xr-xusr/local/www/vpn_ipsec_mobile.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/usr/local/www/vpn_ipsec_mobile.php b/usr/local/www/vpn_ipsec_mobile.php
index 34987d7..1da67e1 100755
--- a/usr/local/www/vpn_ipsec_mobile.php
+++ b/usr/local/www/vpn_ipsec_mobile.php
@@ -61,6 +61,7 @@ if (count($a_client)) {
$pconfig['net_list'] = $a_client['net_list'];
$pconfig['save_passwd'] = $a_client['save_passwd'];
$pconfig['dns_domain'] = $a_client['dns_domain'];
+ $pconfig['dns_split'] = $a_client['dns_split'];
$pconfig['dns_server1'] = $a_client['dns_server1'];
$pconfig['dns_server2'] = $a_client['dns_server2'];
$pconfig['dns_server3'] = $a_client['dns_server3'];
@@ -87,6 +88,9 @@ if (count($a_client)) {
if ($pconfig['dns_domain'])
$pconfig['dns_domain_enable'] = true;
+ if ($pconfig['dns_split'])
+ $pconfig['dns_split_enable'] = true;
+
if ($pconfig['dns_server1']||$pconfig['dns_server2']||$pconfig['dns_server3']||$pconfig['dns_server4'])
$pconfig['dns_server_enable'] = true;
@@ -137,6 +141,18 @@ if ($_POST['submit']) {
if (!is_domain($pconfig['dns_domain']))
$input_errors[] = gettext("A valid value for 'DNS Default Domain' must be specified.");
+ if ($pconfig['dns_split_enable']) {
+ if (!empty($pconfig['dns_split'])) {
+ $domain_array=preg_split("/[ ,]+/",$pconfig['dns_split']);
+ foreach ($domain_array as $curdomain) {
+ if (!is_domain($curdomain)) {
+ $input_errors[] = gettext("A valid split DNS domain list must be specified.");
+ break;
+ }
+ }
+ }
+ }
+
if ($pconfig['dns_server_enable']) {
if (!$pconfig['dns_server1'] && !$pconfig['dns_server2'] &&
!$pconfig['dns_server3'] && !$pconfig['dns_server4'] )
@@ -187,6 +203,9 @@ if ($_POST['submit']) {
if ($pconfig['dns_domain_enable'])
$client['dns_domain'] = $pconfig['dns_domain'];
+ if ($pconfig['dns_split_enable'])
+ $client['dns_split'] = $pconfig['dns_split'];
+
if ($pconfig['dns_server_enable']) {
$client['dns_server1'] = $pconfig['dns_server1'];
$client['dns_server2'] = $pconfig['dns_server2'];
@@ -248,6 +267,14 @@ function dns_domain_change() {
document.iform.dns_domain.disabled = 1;
}
+function dns_split_change() {
+
+ if (document.iform.dns_split_enable.checked)
+ document.iform.dns_split.disabled = 0;
+ else
+ document.iform.dns_split.disabled = 1;
+}
+
function dns_server_change() {
if (document.iform.dns_server_enable.checked) {
@@ -475,6 +502,30 @@ function login_banner_change() {
</table>
</td>
</tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell"><?=gettext("Split DNS"); ?></td>
+ <td width="78%" class="vtable">
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr>
+ <td>
+ <?php set_checked($pconfig['dns_split_enable'],$chk); ?>
+ <input name="dns_split_enable" type="checkbox" id="dns_split_enable" value="yes" <?=$chk;?> onClick="dns_split_change()">
+ </td>
+ <td>
+ <?=gettext("Provide a list of split DNS domain names to clients. Enter a comma separated list."); ?><br>
+ <?=gettext("NOTE: If left blank, and a default domain is set, it will be used for this value."); ?>
+ </td>
+ </tr>
+ </table>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr>
+ <td>
+ <input name="dns_split" type="text" class="formfld unknown" id="dns_split" size="30" value="<?=htmlspecialchars($pconfig['dns_split']);?>">
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
<tr>
<td width="22%" valign="top" class="vncell"><?=gettext("DNS Servers"); ?></td>
<td width="78%" class="vtable">
@@ -616,6 +667,7 @@ function login_banner_change() {
<script language="JavaScript">
pool_change();
dns_domain_change();
+dns_split_change();
dns_server_change();
wins_server_change();
pfs_group_change();
OpenPOWER on IntegriCloud