mirror of
https://github.com/webmin/webmin.git
synced 2026-05-06 23:30:29 +01:00
47 lines
981 B
Perl
Executable File
47 lines
981 B
Perl
Executable File
#!/usr/bin/perl
|
|
# move_rule.cgi
|
|
# Move a rule up or down within a chain
|
|
|
|
require './nftables-lib.pl'; ## no critic
|
|
use strict;
|
|
use warnings;
|
|
our (%in, %text);
|
|
ReadParse();
|
|
error_setup($text{'move_err'});
|
|
assert_acl('rules');
|
|
|
|
my @tables = get_nftables_save();
|
|
my $table = $tables[$in{'table'}];
|
|
$table || error($text{'move_notable'});
|
|
assert_table_acl($table);
|
|
|
|
my $chain = $in{'chain'};
|
|
$chain || error($text{'move_nochain'});
|
|
|
|
my $dir = $in{'dir'};
|
|
$dir = '' if (!defined($dir));
|
|
|
|
my $idx = $in{'idx'};
|
|
$idx =~ /^\d+$/ || error($text{'move_norule'});
|
|
|
|
my $rv = move_rule_in_chain($table, $chain, $idx, $dir);
|
|
if (!defined($rv)) {
|
|
error($text{'move_norule'});
|
|
}
|
|
|
|
if ($rv) {
|
|
my $err = save_table_configuration($table, @tables);
|
|
error(text('move_failed', $err)) if ($err);
|
|
webmin_log(
|
|
"move", "rule", undef,
|
|
{
|
|
'table' => $table->{'name'},
|
|
'family' => $table->{'family'},
|
|
'chain' => $chain,
|
|
'dir' => $dir
|
|
}
|
|
);
|
|
}
|
|
|
|
redirect("index.cgi?table=$in{'table'}");
|