[ Avaa Bypassed ]




Upload:

Command:

www-data@3.136.18.247: ~ $
# xinetd-lib.pl
# Functions for parsing xinetd config files

BEGIN { push(@INC, ".."); };
use WebminCore;
&init_config();

# get_xinetd_config()
sub get_xinetd_config
{
return &parse_xinetd($config{'xinetd_conf'});
}

# parse_xinetd(file, [offset])
# Parses the xinetd config file into directives
sub parse_xinetd
{
local @rv;
open(INET, "<".$_[0]);
local @lines = <INET>;
close(INET);
local $lnum = 0;
local $section;
foreach (@lines) {
	s/\r|\n//g; s/#.*$//g; s/\s+$//;  # remove newlines, comments and spaces
	if (/^\s*\{/) {
		# put subsequent directives into a section
		$section = $rv[$#rv];
		$section->{'members'} = [ ];
		}
	elsif (/^\s*\}/) {
		# finished the section
		$section->{'eline'} = $lnum;
		$section = undef;
		}
	elsif (/^\s*include\s+(\S+)/) {
		# include directives from a file
		push(@rv, &parse_xinetd($1, scalar(@rv)));
		}
	elsif (/^\s*includedir\s+(\S+)/) {
		# include directives from every file in a directory
		local $d = $1;
		opendir(DIR, $d);
		foreach $f (readdir(DIR)) {
			next if ($f =~ /^\./);
			push(@rv, &parse_xinetd("$d/$f", scalar(@rv)));
			}
		closedir(DIR);
		}
	elsif (/^\s*(\S+)\s*(.*)/) {
		# a directive or start of a section
		local $dir = { 'name' => $1, 'file' => $_[0],
			       'index' => scalar(@rv) + $_[1],
			       'line' => $lnum, 'eline' => $lnum };
		local $v = $2;
		if ($v =~ /^(=|\+=|-=)\s+(.*)/) {
			$dir->{'op'} = $1;
			$dir->{'value'} = $2;
			}
		else {
			$dir->{'op'} = '=' if ($service);
			$dir->{'value'} = $v;
			}
		local @v = split(/\s+/, $dir->{'value'});
		$dir->{'values'} = \@v;
		if ($section) {
			push(@{$section->{'members'}}, $dir);
			local @q = @{$section->{'quick'}->{$dir->{'name'}}};
			if ($dir->{'op'} eq '=') {
				@q = @v;
				}
			elsif ($dir->{'op'} eq '+=') {
				@q = ( @q, @v );
				}
			elsif ($dir->{'op'} eq '-=') {
				@q = grep { &indexof($_, @v) < 0 } @q;
				}
			$section->{'quick'}->{$dir->{'name'}} = \@q;
			}
		else { push(@rv, $dir); }
		}
	$lnum++;
	}
return @rv;
}

# set_member_value(&xinet, name, [value]*)
# Removes all members with the given name and replaces them with one
# like  name = value
sub set_member_value
{
local @m = @{$_[0]->{'members'}};
@m = grep { $_->{'name'} ne $_[1] } @m;
if (defined($_[2])) {
	push(@m, { 'name' => $_[1],
		   'op' => '=',
		   'values' => [ @_[2..@_-1] ] } );
	$_[0]->{'quick'}->{$_[1]} = [ @_[2..@_-1] ];
	}
else {
	delete($_[0]->{'quick'}->{$_[1]});
	}
$_[0]->{'members'} = \@m;
}

# create_xinet(&xinet, [file])
# Add a new xinet record to the end of the config file
sub create_xinet
{
local $lref = &read_file_lines($_[1] || $config{'xinetd_conf'});
push(@$lref, &xinet_lines($_[0]));
&flush_file_lines();
}

# modify_xinet(&xinet)
# Update an existing xinet record
sub modify_xinet
{
local $lref = &read_file_lines($_[0]->{'file'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1,
       &xinet_lines($_[0]));
&flush_file_lines();
}

# delete_xinet(&xinet)
# Delete an existing xinet record
sub delete_xinet
{
local $lref = &read_file_lines($_[0]->{'file'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1);
&flush_file_lines();
}

# xinet_lines(&xinet, tabs)
sub xinet_lines
{
local @rv;
$rv[0] = "$_[1]$_[0]->{'name'}";
$rv[0] .= " $_[0]->{'op'}" if ($_[0]->{'op'});
foreach $v (@{$_[0]->{'values'}}) {
	$rv[0] .= " $v";
	}
if ($_[0]->{'members'}) {
	push(@rv, $_[1].'{');
	foreach $m (@{$_[0]->{'members'}}) {
		push(@rv, &xinet_lines($m, "$_[1]\t"));
		}
	push(@rv, $_[1].'}');
	}
return @rv;
}

# list_protocols()
# Returns a list of supported protocols on this system
sub list_protocols
{
local(@rv);
open(PROT, "<".$config{'protocols_file'});
while(<PROT>) {
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	/^(\S+)\s+/;
	push(@rv, $1);
	}
close(PROT);
return &unique(@rv);
}

sub is_xinetd_running
{
if ($config{'pid_file'}) {
	return &check_pid_file($config{'pid_file'});
	}
else {
	local ($pid) = &find_byname("xinetd");
	return $pid;
	}
}

sub get_start_binary
{
my ($cmd) = split(/\s+/, $config{'start_cmd'});
return &has_command($cmd);
}

1;


Filemanager

Name Type Size Permission Actions
images Folder 0755
lang Folder 0755
CHANGELOG File 270 B 0644
backup_config.pl File 729 B 0755
cgi_args.pl File 226 B 0755
config File 163 B 0644
config-AlmaLinux-7.0-ALL File 154 B 0644
config-Amazon-Linux-2-ALL File 154 B 0644
config-CentOS-Linux-7.0-ALL File 154 B 0644
config-CentOS-Stream-Linux-8.0-ALL File 154 B 0644
config-CloudLinux-8.0-ALL File 154 B 0644
config-Oracle-Linux-8.0-ALL File 154 B 0644
config-Redhat-Enterprise-Linux-7.0-ALL File 154 B 0644
config-Rocky-Linux-7.0-ALL File 154 B 0644
config-Scientific-Linux-7.0-ALL File 154 B 0644
config-coherent-linux File 165 B 0644
config-debian-linux File 138 B 0644
config-freebsd File 136 B 0644
config-freebsd-8-ALL File 177 B 0644
config-gentoo-linux File 138 B 0644
config-macos-1.5-6.0 File 159 B 0644
config-macos-7.0-ALL File 181 B 0644
config-mandrake-linux File 134 B 0644
config-msc-linux File 138 B 0644
config-openSUSE-Linux-15.0-ALL File 107 B 0644
config-openmamba-linux File 165 B 0644
config-pardus-linux File 134 B 0644
config-redhat-linux File 165 B 0644
config-redhat-linux-24.0-ALL File 166 B 0644
config-sol-linux File 118 B 0644
config-suse-linux File 139 B 0644
config-suse-linux-7.1-8.2 File 138 B 0644
config-suse-linux-9.0-ALL File 109 B 0644
config-syno-linux File 143 B 0644
config-trustix-linux File 138 B 0644
config-united-linux File 109 B 0644
config.info File 312 B 0644
config.info.ca File 371 B 0644
config.info.de File 335 B 0644
config.info.es File 184 B 0644
config.info.fr File 391 B 0644
config.info.hr File 340 B 0644
config.info.hu File 194 B 0644
config.info.ja File 423 B 0644
config.info.ko File 349 B 0644
config.info.ms File 320 B 0644
config.info.nl File 333 B 0644
config.info.no File 330 B 0644
config.info.pl File 357 B 0644
config.info.ru File 286 B 0644
config.info.sk File 355 B 0644
config.info.sv File 172 B 0644
config.info.tr File 364 B 0644
config.info.uk File 303 B 0644
config.info.zh File 145 B 0644
config.info.zh_TW File 135 B 0644
config_info.pl File 446 B 0755
edit_defaults.cgi File 2.48 KB 0755
edit_serv.cgi File 4.53 KB 0755
feedback_files.pl File 131 B 0755
index.cgi File 4.09 KB 0755
install_check.pl File 398 B 0755
log_parser.pl File 737 B 0755
mass_enable.cgi File 1.38 KB 0755
module.info File 141 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 124 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 151 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 195 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 176 B 0644
module.info.ca File 105 B 0644
module.info.ca.auto File 15 B 0644
module.info.cs File 0 B 0644
module.info.cs.auto File 112 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 122 B 0644
module.info.de File 84 B 0644
module.info.de.auto File 15 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 216 B 0644
module.info.es File 0 B 0644
module.info.es.auto File 120 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 109 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 146 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 110 B 0644
module.info.fr File 0 B 0644
module.info.fr.auto File 122 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 136 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 118 B 0644
module.info.hu File 45 B 0644
module.info.hu.auto File 97 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 109 B 0644
module.info.ja File 0 B 0644
module.info.ja.auto File 156 B 0644
module.info.ko File 0 B 0644
module.info.ko.auto File 137 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 120 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 126 B 0644
module.info.ms File 107 B 0644
module.info.ms.auto File 15 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 121 B 0644
module.info.nl File 25 B 0644
module.info.nl.auto File 92 B 0644
module.info.no File 27 B 0644
module.info.no.auto File 89 B 0644
module.info.pl File 105 B 0644
module.info.pl.auto File 15 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 123 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 132 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 125 B 0644
module.info.ru File 0 B 0644
module.info.ru.auto File 161 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 113 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 124 B 0644
module.info.sv File 0 B 0644
module.info.sv.auto File 122 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 249 B 0644
module.info.tr File 0 B 0644
module.info.tr.auto File 124 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 156 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 188 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 144 B 0644
module.info.zh File 0 B 0644
module.info.zh.auto File 108 B 0644
module.info.zh_TW File 0 B 0644
module.info.zh_TW.auto File 117 B 0644
restart.cgi File 316 B 0755
save_defaults.cgi File 1.52 KB 0755
save_serv.cgi File 4.88 KB 0755
start.cgi File 290 B 0755
xinetd-lib.pl File 3.97 KB 0755