| Server IP : 127.0.0.1 / Your IP : 216.73.216.109 Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10 System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64 User : SERVERWEB ( 0) PHP Version : 8.1.10 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/cygwin64/home/SERVERWEB/webmin-2.105/shorewall6/ |
Upload File : |
#!/usr/bin/perl
# save.cgi
# Updated, modify or delete a table entry
require './shorewall6-lib.pl';
&ReadParse();
&get_clean_table_name(\%in);
&can_access($in{'table'}) || &error($text{'list_ecannot'});
$pfunc = &get_parser_func(\%in);
&error_setup($text{$in{'tableclean'}."_err"});
&lock_table($in{'table'});
if ($in{'delete'}) {
# Just delete one row
&delete_table_row($in{'table'}, $pfunc, $in{'idx'});
}
else {
# Validate inputs
$vfunc = $in{'tableclean'}."_validate";
@row = &$vfunc();
$jfunc = $in{'tableclean'}."_join";
if (defined(&$jfunc)) {
$line = &$jfunc(@row);
}
else {
$line = join("\t", @row);
}
# Update or add
if ($in{'new'}) {
local $where = $in{'before'} ne '' ? $in{'before'} :
$in{'after'} ne '' ? $in{'after'}+1 : undef;
&create_table_row($in{'table'}, $pfunc, $line, $where);
}
else {
# Updating
&modify_table_row($in{'table'}, $pfunc, $in{'idx'}, $line);
}
}
&unlock_table($in{'table'});
&webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify",
"table", $in{'table'});
&redirect("list.cgi?table=$in{'table'}");