Project

General

Profile

Feature #13085 » openvpn_nbdd.patch

Phil Wardt, 11/06/2023 06:39 PM

View differences:

src/etc/inc/openvpn.inc
if (!empty($settings['nbdd_server1'])) {
$conf .= "push \"dhcp-option NBDD {$settings['nbdd_server1']}\"\n";
}
if (!empty($settings['nbdd_server2'])) {
$conf .= "push \"dhcp-option NBDD {$settings['nbdd_server2']}\"\n";
}
}
if ($settings['gwredir']) {
-- a/src/usr/local/www/vpn_openvpn_csc.php
++ b/src/usr/local/www/vpn_openvpn_csc.php
......
}
$pconfig['nbdd_server1'] = $a_csc[$id]['nbdd_server1'];
if ($pconfig['nbdd_server1']) {
$pconfig['nbdd_server2'] = $a_csc[$id]['nbdd_server2'];
if ($pconfig['nbdd_server1'] ||
$pconfig['nbdd_server2']) {
$pconfig['nbdd_server_enable'] = true;
}
}
......
if (!empty($pconfig['nbdd_server1']) && !is_ipaddr(trim($pconfig['nbdd_server1']))) {
$input_errors[] = gettext("The field 'NetBIOS Data Distribution Server #1' must contain a valid IP address");
}
if (!empty($pconfig['nbdd_server2']) && !is_ipaddr(trim($pconfig['nbdd_server2']))) {
$input_errors[] = gettext("The field 'NetBIOS Data Distribution Server #2' must contain a valid IP address");
}
}
if (!empty($pconfig['netbios_ntype']) &&
!array_key_exists($pconfig['netbios_ntype'], $netbios_nodetypes)) {
......
$csc['wins_server2'] = $pconfig['wins_server2'];
}
if ($pconfig['dns_server_enable']) {
if ($pconfig['nbdd_server_enable']) {
$csc['nbdd_server1'] = $pconfig['nbdd_server1'];
$csc['nbdd_server2'] = $pconfig['nbdd_server2'];
}
}
......
$section->add($group);
$section->addInput(new Form_Checkbox(
'nbdd_server_enable',
'NBDD servers',
'Provide a NetBIOS over TCP/IP Datagram Distribution Servers list to clients',
$pconfig['nbdd_server_enable']
));
$group = new Form_Group(null);
$group->add(new Form_Input(
'nbdd_server1',
null,
'text',
$pconfig['nbdd_server1']
))->setHelp('Server 1');
$group->add(new Form_Input(
'nbdd_server2',
null,
'text',
$pconfig['nbdd_server2']
))->setHelp('Server 2');
$group->addClass('nbddservers');
$section->add($group);
$custops = new Form_Textarea(
'custom_options',
'Advanced',
......
hideInput('netbios_scope', false);
hideCheckbox('wins_server_enable', false);
setWins();
hideCheckbox('nbdd_server_enable', false);
setNbdds();
} else {
hideInput('netbios_ntype', true);
hideInput('netbios_scope', true);
hideCheckbox('wins_server_enable', true);
hideClass('winsservers', true);
hideCheckbox('nbdd_server_enable', true);
hideClass('nbddservers', true);
}
}
......
hideClass('winsservers', ! $('#wins_server_enable').prop('checked'));
}
function setNbdds() {
hideClass('nbddservers', ! $('#nbdd_server_enable').prop('checked'));
}
// ---------- Click checkbox handlers ---------------------------------------------------------
// On clicking DNS Default Domain
......
// On clicking the wins_server_enable checkbox
$('#wins_server_enable').click(function () {
setWins();
});
// On clicking the nbdd_server_enable checkbox
$('#nbdd_server_enable').click(function () {
setNbdds();
});
// ---------- On initial page load ------------------------------------------------------------
-- a/src/usr/local/www/vpn_openvpn_server.php
++ b/src/usr/local/www/vpn_openvpn_server.php
......
}
$pconfig['nbdd_server1'] = $a_server[$id]['nbdd_server1'];
if ($pconfig['nbdd_server1']) {
$pconfig['nbdd_server2'] = $a_server[$id]['nbdd_server2'];
if ($pconfig['nbdd_server1'] ||
$pconfig['nbdd_server2']) {
$pconfig['nbdd_server_enable'] = true;
}
......
$input_errors[] = gettext("The field 'WINS Server #2' must contain a valid IP address");
}
}
if ($pconfig['nbdd_server_enable']) {
if (!empty($pconfig['nbdd_server1']) && !is_ipaddr(trim($pconfig['nbdd_server1']))) {
$input_errors[] = gettext("The field 'NetBIOS Data Distribution Server #1' must contain a valid IP address");
}
if (!empty($pconfig['nbdd_server2']) && !is_ipaddr(trim($pconfig['nbdd_server2']))) {
$input_errors[] = gettext("The field 'NetBIOS Data Distribution Server #2' must contain a valid IP address");
}
}
if (!empty($pconfig['netbios_ntype']) &&
!array_key_exists($pconfig['netbios_ntype'], $netbios_nodetypes)) {
......
$server['wins_server2'] = $pconfig['wins_server2'];
}
if ($pconfig['dns_server_enable']) {
if ($pconfig['nbdd_server_enable']) {
$server['nbdd_server1'] = $pconfig['nbdd_server1'];
$server['nbdd_server2'] = $pconfig['nbdd_server2'];
}
}
......
$pconfig['wins_server2']
));
$section->addInput(new Form_Checkbox(
'nbdd_server_enable',
'NBDD servers',
'Provide a NetBIOS over TCP/IP Datagram Distribution Servers list to clients',
$pconfig['nbdd_server_enable']
));
$group = new Form_Group(null);
$group->add(new Form_Input(
'nbdd_server1',
null,
'text',
$pconfig['nbdd_server1']
))->setHelp('Server 1');
$group->add(new Form_Input(
'nbdd_server2',
null,
'text',
$pconfig['nbdd_server2']
))->setHelp('Server 2');
$group->addClass('nbddservers');
$section->add($group);
$form->add($section);
$section = new Form_Section('Advanced Configuration');
......
hideInput('wins_server2', hide);
}
function nbdd_server_change() {
hideClass('nbddservers', ! $('#nbdd_server_enable').prop('checked') || ! $('#netbios_enable').prop('checked'));
}
function ntp_server_change() {
var hide = ! $('#ntp_server_enable').prop('checked')
......
hideInput('netbios_scope', hide);
hideCheckbox('wins_server_enable', hide);
wins_server_change();
hideCheckbox('nbdd_server_enable', hide);
nbdd_server_change();
}
function tuntap_change() {
......
wins_server_change();
});
// NBDD server
$('#nbdd_server_enable').click(function () {
nbdd_server_change();
});
// DNS server port
$('#dns_server_enable').click(function () {
dns_server_change();
......
dns_domain_change();
dns_server_change();
wins_server_change();
nbdd_server_change
ntp_server_change();
netbios_change();
tuntap_change();
(2-2/2)