[ Avaa Bypassed ]




Upload:

Command:

www-data@3.14.251.87: ~ $
#!/usr/bin/perl
# save_service.cgi
# Save, create or delete a service

require './mon-lib.pl';
&ReadParse();
$conf = &get_mon_config();
$watch = $conf->[$in{'idx'}];
if ($in{'sidx'} ne '') {
	$oldservice = $service = $watch->{'members'}->[$in{'sidx'}];
	}
else {
	$service = { 'name' => 'service',
		     'indent' => '    ',
		     'members' => [ ] };
	}
&error_setup($text{'service_err'});

if ($in{'delete'}) {
	# Delete this service from the watch
	&save_directive($watch->{'members'}, $service, undef);
	}
else {
	# Validate and store service inputs
	$in{'name'} =~ /^\S+$/ || &error($text{'service_ename'});
	$service->{'values'} = [ $in{'name'} ];
	$in{'interval'} =~ /^\d+$/ || &error($text{'service_einterval'});

	# Save the description
	if ($in{'desc'}) {
		&set_directive($service->{'members'}, "description",
			       $in{'desc'});
		}
	else {
		&set_directive($service->{'members'}, "description");
		}

	&set_directive($service->{'members'}, "interval",
		       $in{'interval'}.$in{'interval_u'});
	if ($in{'monitor_def'}) {
		&set_directive($service->{'members'}, "monitor",
			       $in{'monitor'}.' '.$in{'args'});
		}
	else {
		$in{'other'} =~ /^\S+$/ || &error($text{'service_eother'});
		&set_directive($service->{'members'}, "monitor",
			       $in{'other'}.' '.$in{'args'});
		}

	# Validate and store each period
	for($i=0; defined($in{"idx_$i"}); $i++) {
		# Save period time
		next if ($in{"delete_$i"});
		local $period;
		if (!$in{'new'} && $in{"idx_$i"} ne '') {
			$period = $service->{'members'}->[$in{"idx_$i"}];
			}
		else {
			$period = { 'name' => 'period',
				    'members' => [ ] };
			}
		if ($in{"known_$i"} == 0) {
			$in{"pstr_$i"} =~ /\S/ ||
				&error($text{'service_epstr'});
			$period->{'values'} = [ $in{"pstr_$i"} ];
			}
		elsif ($in{"known_$i"} == 2) {
			$period->{'values'} = [ $in{"name_$i"}.":" ];
			}
		else {
			local @pv;
			if (!$in{"days_def_$i"}) {
				push(@pv, "wd {".$in{"dfrom_$i"}."-".
					  $in{"dto_$i"}."}");
				}
			if (!$in{"hours_def_$i"}) {
				$in{"hfrom_$i"} =~ /^(\d+)(am|pm|)$/ ||
					&error(&text('service_ehour', $i+1));
				$in{"hto_$i"} =~ /^(\d+)(am|pm|)$/ ||
					&error(&text('service_ehour', $i+1));
				push(@pv, "hr {".$in{"hfrom_$i"}."-".
					  $in{"hto_$i"}."}");
				}
			#@pv || &error(&text('service_eperiod', $i+1));
			$period->{'values'} = \@pv;
			}

		# Save alerts
		local (@alert, @upalert, @startupalert);
		for($j=0; defined($in{"alert_${i}_${j}"}); $j++) {
			next if (!$in{"alert_${i}_${j}"});
			local @v = ( $in{"alert_${i}_${j}"}, 
				     $in{"aargs_${i}_${j}"} );
			if ($in{"atype_${i}_${j}"} eq 'alert') {
				push(@alert, { 'name' => 'alert',
					       'values' => \@v });
				}
			elsif ($in{"atype_${i}_${j}"} eq 'upalert') {
				push(@upalert, { 'name' => 'upalert',
					         'values' => \@v });
				}
			else {
				push(@startupalert, { 'name' => 'startupalert',
					              'values' => \@v });
				}
			}
		&set_directive($period->{'members'}, "alert", @alert);
		&set_directive($period->{'members'}, "upalert", @upalert);
		&set_directive($period->{'members'}, "startupalert",
						     @startupalert);

		# Save other period options
		if ($in{"every_def_$i"}) {
			&set_directive($period->{'members'}, "alertevery");
			}
		else {
			$in{"every_$i"} =~ /^\d+$/ ||
				&error($text{'service_eevery'});
			&set_directive($period->{'members'}, "alertevery",
				       $in{"every_$i"}.$in{"every_${i}_u"});
			}

		if ($in{"after_def_$i"}) {
			&set_directive($period->{'members'}, "alertafter");
			}
		else {
			$in{"after_$i"} =~ /^\d+$/ ||
				&error($text{'service_eafter'});
			if ($in{"after_interval_$i"} =~ /^\d+$/) {
				&set_directive($period->{'members'},
					"alertafter", $in{"after_$i"}." ".
					$in{"after_interval_$i"}.
					$in{"after_interval_${i}_u"});
				}
			}

		if ($in{"num_def_$i"}) {
			&set_directive($period->{'members'}, "numalerts");
			}
		else {
			$in{"num_$i"} =~ /^\d+$/ ||
				&error($text{'service_enum'});
			&set_directive($period->{'members'}, "numalerts",
				       $in{"num_$i"});
			}

		push(@period, $period);
		}
	&set_directive($service->{'members'}, "period", @period);

	# Store the service in the config file
	&save_directive($watch->{'members'}, $oldservice, $service);
	}
&flush_file_lines();
&redirect("list_watches.cgi");

# set_directive(&config, name, value, value, ..)
sub set_directive
{
local @o = &find($_[1], $_[0]);
local @n = @_[2 .. @_-1];
local $i;
for($i=0; $i<@o || $i<@n; $i++) {
	local $idx = &indexof($o[$i], @{$_[0]}) if ($o[$i]);
	local $nv = ref($n[$i]) ? $n[$i] : { 'name' => $_[1],
					     'values' => [ $n[$i] ] }
						if (defined($n[$i]));
	if ($o[$i] && defined($n[$i])) {
		$_[0]->[$idx] = $nv;
		}
	elsif ($o[$i]) {
		splice(@{$_[0]}, $idx, 1);
		}
	else {
		push(@{$_[0]}, $nv);
		}
	}
}


Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
CHANGELOG File 113 B 0644
README File 287 B 0644
backup_config.pl File 732 B 0755
config File 201 B 0644
config-Fedora-Linux File 189 B 0644
config.info File 362 B 0644
config.info.ca File 397 B 0644
config.info.cs File 375 B 0644
config.info.de File 429 B 0644
config.info.es File 399 B 0644
config.info.nl File 420 B 0644
config.info.no File 381 B 0644
config.info.ru File 506 B 0644
config.info.uk File 511 B 0644
create_watch.cgi File 281 B 0755
edit_auth.cgi File 1.43 KB 0755
edit_global.cgi File 2.01 KB 0755
edit_service.cgi File 8.05 KB 0755
edit_user.cgi File 1.38 KB 0755
edit_watch.cgi File 2.21 KB 0755
feedback_files.pl File 113 B 0755
index.cgi File 1.52 KB 0755
install_check.pl File 329 B 0755
list_groups.cgi File 832 B 0755
list_periods.cgi File 2.09 KB 0755
list_users.cgi File 1.03 KB 0755
list_watches.cgi File 1.26 KB 0755
module.info File 181 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 108 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 136 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 166 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 171 B 0644
module.info.ca File 117 B 0644
module.info.ca.auto File 13 B 0644
module.info.cs File 37 B 0644
module.info.cs.auto File 86 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 108 B 0644
module.info.de File 111 B 0644
module.info.de.auto File 12 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 192 B 0644
module.info.es File 32 B 0644
module.info.es.auto File 91 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 121 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 168 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 105 B 0644
module.info.fr File 0 B 0644
module.info.fr.auto File 126 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 119 B 0644
module.info.hu File 0 B 0644
module.info.hu.auto File 122 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 121 B 0644
module.info.ja File 0 B 0644
module.info.ja.auto File 160 B 0644
module.info.ko File 0 B 0644
module.info.ko.auto File 138 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 141 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 128 B 0644
module.info.ms File 105 B 0644
module.info.ms.auto File 12 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 132 B 0644
module.info.nl File 28 B 0644
module.info.nl.auto File 89 B 0644
module.info.no File 31 B 0644
module.info.no.auto File 82 B 0644
module.info.pl File 0 B 0644
module.info.pl.auto File 112 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 122 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 131 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 128 B 0644
module.info.ru File 38 B 0644
module.info.ru.auto File 154 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 122 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 113 B 0644
module.info.sv File 0 B 0644
module.info.sv.auto File 117 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 255 B 0644
module.info.tr File 0 B 0644
module.info.tr.auto File 123 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 214 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 158 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 155 B 0644
module.info.zh File 0 B 0644
module.info.zh.auto File 121 B 0644
module.info.zh_TW File 0 B 0644
module.info.zh_TW.auto File 130 B 0644
mon-lib.pl File 8.96 KB 0755
mon.cgi File 998 B 0755
mon_action.cgi File 415 B 0755
moncmd.diff File 2.52 KB 0644
moncmd.pl File 5.66 KB 0755
monshow.cgi File 564 B 0755
monshowrc File 166 B 0644
restart.cgi File 180 B 0755
save_auth.cgi File 625 B 0755
save_global.cgi File 1.7 KB 0755
save_groups.cgi File 656 B 0755
save_periods.cgi File 1.11 KB 0755
save_service.cgi File 4.71 KB 0755
save_user.cgi File 823 B 0755
save_watch.cgi File 370 B 0755
start.cgi File 226 B 0755
stop.cgi File 423 B 0755