| Server IP : 172.67.134.114 / Your IP : 162.159.115.41 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/libexec/webmin/qmailadmin/ |
Upload File : |
#!/usr/bin/perl
# save_virt.cgi
# Save or delete a new or existing virtual mapping
require './qmail-lib.pl';
&ReadParse();
&error_setup($text{'vsave_err'});
@virts = &list_virts();
$v = $virts[$in{'idx'}] if ($in{'idx'} ne '');
if ($in{'delete'}) {
# delete some virt
$logv = $v;
&delete_virt($v);
}
else {
# saving or creating .. check inputs
if ($in{'from_mode'} == 1) {
$in{'domain'} =~ /^[A-Za-z0-9\.\-]+$/ ||
&error(&text('vsave_edomain', $in{'domain'}));
$newv{'domain'} = $in{'domain'};
}
elsif ($in{'from_mode'} == 2) {
$in{'user'} =~ /^[^\@: ]+$/ ||
&error(&text('vsave_euser', $in{'user'}));
$in{'domain2'} =~ /^[A-Za-z0-9\.\-]+$/ ||
&error(&text('vsave_edomain', $in{'domain2'}));
$newv{'domain'} = $in{'domain2'};
$newv{'user'} = $in{'user'};
}
if ($in{'prepend_mode'} == 1) {
$in{'prepend'} =~ /^[^\@: ]+$/ ||
&error(&text('vsave_eprepend', $in{'prepend'}));
$newv{'prepend'} = $in{'prepend'};
}
elsif ($in{'prepend_mode'} == 0) {
$in{'from_mode'} || &error($text{'vsave_eboth'});
}
elsif ($in{'prepend_mode'} == 2) {
if ($in{'from_mode'} == 1) {
$newv{'prepend'} = $in{'domain'};
$newv{'prepend'} =~ s/\.(.*)$//;
}
elsif ($in{'from_mode'} == 2) {
$newv{'prepend'} = $in{'domain2'};
$newv{'prepend'} =~ s/\.(.*)$//;
}
else {
$newv{'prepend'} = 'catchall';
}
}
if ($in{'new'}) { &create_virt(\%newv); }
else { &modify_virt($v, \%newv); }
$logv = \%newv;
}
&restart_qmail();
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
"virt", $logv->{'user'} ? "$logv->{'user'}\@$logv->{'domain'}" :
$logv->{'domain'}, $logv);
&redirect("list_virts.cgi");