This commit is contained in:
devdatt 2025-12-23 00:09:14 +05:30
parent d744cb3794
commit ea07dabc3e
1 changed files with 147 additions and 183 deletions

View File

@ -60,7 +60,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$network_primary_ip = $get('network_primary_ip');
$network_primary_gateway = $get('network_primary_gateway');
$network_primary_gateway = $get('network_primary_gateway');
$network_primary_vlan = $get('network_primary_vlan');
$network_primary_dns1 = $get('network_primary_dns1');
$network_primary_dns2 = $get('network_primary_dns2');
@ -84,40 +83,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$network_secondary_ipv6_dns1 = $get('network_secondary_ipv6_dns1');
$network_secondary_ipv6_dns2 = $get('network_secondary_ipv6_dns2');
$validate_ip_or_cidr = function ($v) {
if ($v === '') return true;
if (strpos($v, '/') !== false) {
[$ip, $cidr] = explode('/', $v, 2);
return filter_var($ip, FILTER_VALIDATE_IP) !== false && ctype_digit($cidr) && (int)$cidr >= 0 && (int)$cidr <= 32;
}
return filter_var($v, FILTER_VALIDATE_IP) !== false;
};
foreach (
[
['field' => 'Primary IP', 'value' => $primary_ip],
['field' => 'Primary Subnet', 'value' => $primary_subnet],
['field' => 'Primary Gateway', 'value' => $primary_gateway],
['field' => 'Secondary IP', 'value' => $secondary_ip],
['field' => 'Secondary Subnet', 'value' => $secondary_subnet],
['field' => 'Secondary Gateway', 'value' => $secondary_gateway],
] as $f
) {
if ($f['value'] !== '') {
$ok = $f['field'] === 'Primary Subnet' || $f['field'] === 'Secondary Subnet'
? $validate_ip_or_cidr($f['value'])
: filter_var($f['value'], FILTER_VALIDATE_IP) !== false;
if (!$ok) $errors[] = $f['field'] . ' is invalid: ' . htmlspecialchars($f['value']);
}
}
foreach ([['Primary VLAN', $primary_vlan], ['Secondary VLAN', $secondary_vlan]] as $v) {
if ($v[1] !== '' && (!ctype_digit($v[1]) || (int)$v[1] < 0 || (int)$v[1] > 4094)) {
$errors[] = $v[0] . ' must be a number 0-4094';
}
}
if (empty($errors)) {
$new = [
'primary' => [
'mode' => 'dhcp',
@ -168,7 +133,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
]
];
/* ---------- helper to build IPv4/IPv6 ---------- */
function build_interface(array $d, string $key): array
{
$cfg = [];
@ -280,8 +244,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$yaml = netplan_yaml($netplan);
file_put_contents('/var/www/50-cloud-init.yaml', $yaml);
}
}
}
?>
<form method="POST" novalidate>