|
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/sendmail/ |
Upload File : |
#!/usr/bin/perl
# save_domain.cgi
# Save, create or delete an address mapping
require './sendmail-lib.pl';
require './domain-lib.pl';
&ReadParse();
$access{'domains'} || &error($text{'dsave_ecannot'});
$conf = &get_sendmailcf();
$dfile = &domains_file($conf);
&lock_file($dfile);
($ddbm, $ddbmtype) = &domains_dbm($conf);
@doms = &list_domains($dfile);
if (!$in{'new'}) { $d = $doms[$in{'num'}]; }
foreach $du (@doms) { $already{$du->{'from'}}++; }
if ($in{'delete'}) {
# delete some mapping
$logd = $d;
&delete_domain($d, $dfile, $ddbm, $ddbmtype);
}
else {
# Saving or creating.. check inputs
&error_setup($text{'dsave_err'});
$in{'from'} =~ /^[A-z0-9\.\-]+$/ ||
&error(&text('dsave_edomain', $in{'from'}));
$in{'to'} =~ /^[A-z0-9\.\-]+$/ ||
&error(&text('dsave_edomain', $in{'to'}));
if ($in{'new'} || lc($in{'from'}) ne lc($d->{'from'})) {
($same) = grep { lc($_->{'from'}) eq lc($in{'from'}) }
@doms;
$same && &error(&text('dsave_ealready', $in{'from'}));
}
$newd{'from'} = $in{'from'};
$newd{'to'} = $in{'to'};
$newd{'cmt'} = $in{'cmt'};
if ($in{'new'}) { &create_domain(\%newd, $dfile, $ddbm, $ddbmtype); }
else { &modify_domain($d, \%newd, $dfile, $ddbm, $ddbmtype); }
$logd = \%newd;
}
&unlock_file($dfile);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
"domain", $logd->{'from'}, $logd);
&redirect("list_domains.cgi");