| 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/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");