From bcdcdd11b1aef22b2ba7e4a096e9cb0a9a9791e7 Mon Sep 17 00:00:00 2001 From: Julian Rother <julian@cccv.de> Date: Wed, 20 Oct 2021 17:13:10 +0200 Subject: [PATCH] Fixed postfix lookup order emulation --- server.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/server.py b/server.py index e46ace6..3fbfc67 100644 --- a/server.py +++ b/server.py @@ -151,13 +151,16 @@ class SocketmapsRequestHandler(socketserver.BaseRequestHandler): # "user@domain" first, then "user", then "@domain", until it finds # a match. With socketmap virtual(5) only attempts to lookup "user@domain". # To be a drop-in replacement for LDAP, we have to emulate this behaviour. - if '@' not in key: - return 'PERM Key is not a mail address', logging.WARNING - user, domain = key.split('@', 1) - results = self.api.get_aliases(f'{user}@{domain}') - if not results: + if '@' in key: + user, domain = key.split('@', 1) + else: + user, domain = key, '' + results = [] + if user and domain: + results = self.api.get_aliases(f'{user}@{domain}') + if not results and user: results = self.api.get_aliases(f'{user}') - if not results: + if not results and domain: results = self.api.get_aliases(f'@{domain}') if not results: return 'NOTFOUND ' -- GitLab