diff options
author | jim-p <jimp@pfsense.org> | 2012-09-26 15:41:49 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2012-09-26 15:41:49 -0400 |
commit | d7402222e3be4794b15c7bad89797f7725590a9f (patch) | |
tree | cbe8d409965408e9c3a33883e7bf739035ff56b7 | |
parent | 3b15c32ca362bc46729d5b652ea5e6dad5650786 (diff) | |
download | pfsense-d7402222e3be4794b15c7bad89797f7725590a9f.zip pfsense-d7402222e3be4794b15c7bad89797f7725590a9f.tar.gz |
Add option to separately specify the split dns domain list for IPsec mobile clients.
-rwxr-xr-x | usr/local/www/vpn_ipsec_mobile.php | 52 |
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(); |