HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: 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,pcntl_unshare,
Upload Files
File: //usr/share/webmin/bind8/cgi_args.pl
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';

do 'bind8-lib.pl';
# Globals from bind8-lib.pl
our (%config, %text, %in);

sub cgi_args
{
my ($cgi) = @_;
if ($cgi =~ /^conf_/) {
	# All config pages can be linked to
	return '';
	}
elsif ($cgi =~ /^edit_(master|slave|stub|forward|delegation|hint).cgi$/) {
	# Find a zone of this type
	my @allzones = grep { &can_edit_zone($_) } &list_zone_names();
	my ($z) = grep { $_->{'type'} eq $1 } @allzones;
	return $z ? 'zone='.$z->{'zone'}.
		    ($z->{'view'} ? '&view='.$z->{'viewindex'} : '') : 'none';
	}
elsif ($cgi eq 'edit_view.cgi') {
	# Find a view
	my ($v) = grep { $_->{'type'} eq 'view' &&
			 &can_edit_view($_) } &list_zone_names();
	return $v ? 'index='.$v->{'index'} : 'none';
	}
elsif ($cgi eq 'edit_text.cgi' || $cgi eq 'edit_soa.cgi' ||
       $cgi eq 'edit_options.cgi' || $cgi eq 'find_free.cgi' ||
       $cgi eq 'list_gen.cgi' || $cgi eq 'whois.cg' ||
       $cgi eq 'edit_zonekey.cgi' || $cgi eq 'edit_recs.cgi' ||
       $cgi eq 'edit_record.cgi') {
	# Find a master zone
	my ($z) = grep { ($_->{'type'} eq 'master' ||
			  $_->{'type'} eq 'primary') &&
			 &can_edit_zone($_) } &list_zone_names();
	return 'none' if (!$z);
	my $rv = 'zone='.$z->{'zone'}.
                 ($z->{'view'} ? '&view='.$z->{'viewindex'} : '');
	if ($cgi eq 'edit_recs.cgi' || $cgi eq 'edit_record.cgi') {
		$rv .= '&type=A';
		}
	if ($cgi eq 'edit_record.cgi') {
		# Link to first A record
		my @recs = &read_zone_file($z->{'file'}, $z->{'name'});
		my ($r) = grep { $_->{'type'} eq 'A' } @recs;
		if ($r) {
			$rv .= '&num='.$r->{'num'};
			}
		else {
			return 'none';
			}
		}
	return $rv;
	}
elsif ($cgi eq 'view_text.cgi' || $cgi eq 'edit_soptions.cgi') {
	# Find a slave zone
	my ($z) = grep { $_->{'type'} eq 'slave' &&
			 &can_edit_zone($_) } &list_zone_names();
	return $z ? 'zone='.$z->{'zone'}.
		    ($z->{'view'} ? '&view='.$z->{'viewindex'} : '') : 'none';
	}
return undef;
}