diff --git a/server.py b/server.py index e46ace65725fbe695cd5f4c08de184df25dcc39f..3fbfc67f01a4730ace33fb27bafeba0118729b47 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 '