[pmg-devel] [PATCH pmg-api] fix #3924: ldap: skip non-smtp proxyAddresses

Markus Frank m.frank at proxmox.com
Fri Mar 18 13:37:06 CET 2022


When an entry in proxyAddresses starts with SIP (or everthing
that is not smtp) no e-mail gets listed on the webpage.
Therefore no quarantine notification messages are sent.

To change this, every entry with another protocol than smtp,
should be skipped.

removed "SMTP" because of lowercase function is called before.

Signed-off-by: Markus Frank <m.frank at proxmox.com>
---
 src/PMG/LDAPCache.pm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/PMG/LDAPCache.pm b/src/PMG/LDAPCache.pm
index df61454..8172329 100755
--- a/src/PMG/LDAPCache.pm
+++ b/src/PMG/LDAPCache.pm
@@ -159,12 +159,17 @@ sub queryusers {
 	    next if !$user->{attributes}->{$attr};
 	    foreach my $mail (@{$user->{attributes}->{$attr}}) {
 		$mail = lc($mail);
+
+		# Check if proxyAddresses entry starts with anything
+		# other than smtp and skip if true
+		next if ($mail =~ m/^(?!.*smtp).*[\:\$]/gs);
+
 		# Test if the Line starts with one of the following lines:
-		# proxyAddresses: [smtp|SMTP]:
+		# proxyAddresses: [smtp]:
 		# and also discard this starting string, so that $mail is only the
 		# address without any other characters...
 
-		$mail =~ s/^(smtp|SMTP)[\:\$]//gs;
+		$mail =~ s/^smtp[\:\$]//gs;
 
 		if ($mail !~ m/[\{\}\\\/]/ && $mail =~ m/^\S+\@\S+$/) {
 		    $umails->{$mail} = 1;
-- 
2.30.2





More information about the pmg-devel mailing list