|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /proc/self/root/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");