Private
Server IP : 195.201.23.43  /  Your IP : 3.141.35.52
Web Server : Apache
System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64
User : kdecoratie ( 1041)
PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/webmin/bind8/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /usr/share/webmin/bind8//mass_rdelete.cgi
#!/usr/bin/perl
# Delete all records of some type with some name
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
our (%access, %text, %in);

require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'umass_err'});

# Get the zones
my @zones;
foreach my $d (split(/\0/, $in{'d'})) {
	my ($zonename, $viewidx) = split(/\s+/, $d);
	my $zone = &get_zone_name_or_error($zonename, $viewidx);
	$zone || &error($text{'umass_egone'});
	&can_edit_zone($zone) ||
		&error($text{'master_edelete'});
	push(@zones, $zone);
	}
$access{'ro'} && &error($text{'master_ero'});
$in{'name_def'} || $in{'name'} || &error($text{'rdmass_ename'});

# Do each one
&ui_print_unbuffered_header(undef, $text{'rdmass_title'}, "");

foreach my $zi (@zones) {
	print &text('rdmass_doing', "<tt>$zi->{'name'}</tt>"),"<br>\n";
	if ($zi->{'type'} ne 'master' && $zi->{'type'} ne 'primary') {
		# Skip - not a master zone
		print $text{'umass_notmaster'},"<p>\n";
		next;
		}
	my $rcount = 0;
	&before_editing($zi);
	my @recs = &read_zone_file($zi->{'file'}, $zi->{'name'});
	my $realfile = &make_chroot(&absolute_path($zi->{'file'}));
	foreach my $r (reverse(@recs)) {
		my $shortname = $r->{'name'};
		$shortname =~ s/\.$zi->{'name'}\.$//;
		my $v = join(" ", @{$r->{'values'}});
		if ($r->{'type'} eq $in{'type'} &&
		    ($shortname eq $in{'name'} || $in{'name_def'}) &&
		    ($v eq $in{'value'} || $in{'value_def'})) {
			# Found a record to delete
			&lock_file($realfile);
			&delete_record($zi->{'file'}, $r);
			$rcount++;
			}
		}
	if ($rcount) {
		&bump_soa_record($zi->{'file'}, \@recs);
		&sign_dnssec_zone_if_key($zi, \@recs);
		print &text('rdmass_done', $rcount, scalar(@recs)),"<p>\n";
		}
	else {
		print &text('rdmass_none', scalar(@recs)),"<p>\n";
		}
	&after_editing($zi);
	}

&unlock_all_files();
&webmin_log("rdelete", "zones", scalar(@zones));

&ui_print_footer("", $text{'index_return'});

Private