HEX
Server: Apache/2.4.29 (Ubuntu)
System: Linux bareserver 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
User: root (0)
PHP: 7.2.24-0ubuntu0.18.04.17
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,
Upload Files
File: //usr/share/webmin/jabber/save_karma.cgi
#!/usr/bin/perl
# save_karma.cgi
# Save karma traffic control options

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

$conf = &get_jabber_config();
$io = &find("io", $conf);
$karma = &find("karma", $io);

if (!$karma) {
	# Create a new empty karma block
	$karma = [ "karma", [ { } ] ];
	}

# Validate and store inputs
if ($in{'rate_def'}) {
	&save_directive($io, "rate");
	}
else {
	$in{'points'} =~ /^\d+$/ || &error($text{'karma_epoints'});
	$in{'time'} =~ /^\d+$/ || &error($text{'karma_etime'});
	&save_directive($io, "rate",
			[ [ "rate", [ { 'points' => $in{'points'},
					'time' => $in{'time'} } ] ] ] );
	}
if ($in{'mode'} == -1) {
	# Remove karma section entirely
	&save_directive($io, "karma");
	}
elsif ($in{'mode'} == 3) {
	# Check user karma inputs
	foreach $k ('heartbeat', 'init', 'max', 'dec', 'penalty', 'restore') {
		$in{$k} =~ /^\d+$/ || &error($text{"karma_e$k"});
		local $v = $k eq 'penalty' ? -$in{$k} : $in{$k};
		&save_directive($karma, $k, [ [ $k, [ { }, 0, $v ] ] ] );
		}
	}
else {
	# Use pre-defined karma
	$kp = $karma_presets[$in{'mode'}];
	foreach $k (keys %$kp) {
		&save_directive($karma, $k, [ [ $k, [ { }, 0, $kp->{$k} ] ] ] );
		}
	&save_directive($io, "karma", [ $karma ] );
	}
&save_jabber_config($conf);
&redirect("");