diff options
-rw-r--r-- | postfix_wizard/scripts/Postfixconf.pm | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/postfix_wizard/scripts/Postfixconf.pm b/postfix_wizard/scripts/Postfixconf.pm index 9ca428db..03c5658e 100644 --- a/postfix_wizard/scripts/Postfixconf.pm +++ b/postfix_wizard/scripts/Postfixconf.pm @@ -2,23 +2,15 @@ package Postfixconf; require "__WIZ_HOME__/common/scripts/Vareqval.pm"; +require "__WIZ_HOME__/common/scripts/DrakconnectConf.pm"; use MDK::Common; use strict; +my $o = DrakconnectConf->new(); + sub do_it { - my $file = "/etc/sysconfig/mdk_serv"; - my %mdk = Vareqval->get($file); - my $wiz_domain_name = $mdk{wiz_domain_name} if defined $mdk{wiz_domain_name} or - die "wiz_domain_name not in $file"; - my $wiz_host_name = $mdk{wiz_host_name} if defined $mdk{wiz_host_name} or - die "wiz_host_name not in $file"; - my $wiz_device = $mdk{wiz_device} if defined $mdk{wiz_device} or - die "wiz_device not in $file"; - $mdk{wiz_ext_mail_relay} = $ENV{wiz_ext_mail_relay} if defined $ENV{wiz_ext_mail_relay} or - die "wiz_ext_mail_relay not in env"; - $mdk{wiz_mail_masquerade} = $ENV{wiz_mail_masquerade} if defined $ENV{wiz_mail_masquerade} or - die "wiz_mail_masquerade not in env"; - Vareqval->commit($file, \%mdk); + my $wiz_domain_name = $o->get("DomainName"); + my $wiz_host_name = $o->get("SystemName"); my @conf = qw(/etc/postfix/aliases /etc/postfix/canonical /etc/postfix/main.cf @@ -27,7 +19,7 @@ sub do_it { foreach (@conf) { (-f $_) and MDK::Common::cp_af($_, $_.".orig"); } - @conf = ("myhostname = $wiz_host_name", + @conf = ("myhostname = $wiz_host_name.$wiz_domain_name", 'myorigin = $mydomain', 'inet_interfaces = all', 'mydestination = $myhostname, localhost.$mydomain, $mydomain', @@ -42,18 +34,17 @@ sub do_it { system("postconf -e \'$_\'"); } if (defined $ENV{wiz_ext_mail_relay}) { - $file = "/etc/postfix/canonical"; - open(CANONICAL, "< $file"); - while (<CANONICAL>) { - if (/\@$ENV{wiz_domain_name}\s*\@$ENV{wiz_mail_masquerade}/){ - goto NOUPDATE; + my $file = "/etc/postfix/canonical"; + my $canon = "\n\@$wiz_domain_name \@$ENV{wiz_mail_masquerade}"; + my $t; + foreach (cat_($file)) { + if (/^\s*(?!\#)\s*\@.*\@.*\@.*\..*/) { + $t = $_; + last; } } - close(CANONICAL); - open(CANONICAL, ">> $file"); - print CANONICAL "\n\@$ENV{wiz_domain_name} \@$ENV{wiz_mail_masquerade}"; - NOUPDATE: - close(CANONICAL); + if ($t) { substInFile { s|$t|\#$&$canon|} $file } + else { append_to_file($canon) } } system("postmap /etc/postfix/canonical"); system("postmap /etc/postfix/virtual"); |