summaryrefslogtreecommitdiffstats
path: root/roles/MX
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2014-07-07 05:29:09 +0200
committerGuilhem Moulin <guilhem@fripost.org>2015-06-07 02:52:35 +0200
commit8fdaba4d764b9e534a0343746a3e30cf3f68852e (patch)
tree4aea0cc8d0aa6c99c3f08c1650e1e5d5a86ddab7 /roles/MX
parent7c01a383fae4d84727d6a036d93117c761b98e10 (diff)
Fix a corner case in reserved-alias.pl.
'if $l' is false when $l is 0, while 0@example.org is a perfectly valid address.
Diffstat (limited to 'roles/MX')
-rwxr-xr-xroles/MX/files/usr/local/sbin/reserved-alias.pl11
1 files changed, 3 insertions, 8 deletions
diff --git a/roles/MX/files/usr/local/sbin/reserved-alias.pl b/roles/MX/files/usr/local/sbin/reserved-alias.pl
index 2c86020..603d773 100755
--- a/roles/MX/files/usr/local/sbin/reserved-alias.pl
+++ b/roles/MX/files/usr/local/sbin/reserved-alias.pl
@@ -41,7 +41,7 @@ my $sender = shift;
# The original recipient
my $orig = shift;
-$orig =~ /^([^@]+)\@(.+)$/
+$orig =~ /^(.+)\@([^@]+)$/
or warn "Warning: Non fully qualified: $orig";
my ($local,$domain) = ($1,$2);
@@ -50,12 +50,7 @@ my @recipients = grep { $_ and $orig ne $_ }
# add localparts to domain
map { my $x = $_;
if ($x =~ /^\@/) {
- if ($local) {
- $x = $local.$x;
- }
- else {
- undef $x;
- }
+ $x = (defined $local and $local ne '') ? $local.$x : undef;
}
$x
}
@@ -97,7 +92,7 @@ if (defined $domain) {
my $dn2 = ldap_explode_dn($dn, casefold => 'lower');
my $l = $dn2->[0]->{fvl};
my $d = $dn2->[1]->{fvd};
- if ($l and $d) {
+ if ($l ne '' and $d ne '') {
push @recipients, $l.'@'.$d;
}
else {