diff --git a/daemon.py b/daemon.py index e87ce93e3..320f3fa78 100644 --- a/daemon.py +++ b/daemon.py @@ -1154,46 +1154,46 @@ class PubServer(BaseHTTPRequestHandler): # check for blocked domains so that they can be rejected early messageDomain = None - if messageJson.get('actor'): - # actor should be a string - if not isinstance(messageJson['actor'], str): - self._400() - self.server.POSTbusy = False - return 3 - - # actor should look like a url - if '://' not in messageJson['actor'] or \ - '.' not in messageJson['actor']: - print('POST actor does not look like a url ' + - messageJson['actor']) - self._400() - self.server.POSTbusy = False - return 3 - - # sent by an actor on a local network address? - if not self.server.allowLocalNetworkAccess: - localNetworkPatternList = getLocalNetworkAddresses() - for localNetworkPattern in localNetworkPatternList: - if localNetworkPattern in messageJson['actor']: - print('POST actor contains local network address ' + - messageJson['actor']) - self._400() - self.server.POSTbusy = False - return 3 - - messageDomain, messagePort = \ - getDomainFromActor(messageJson['actor']) - if isBlockedDomain(self.server.baseDir, messageDomain): - print('POST from blocked domain ' + messageDomain) - self._400() - self.server.POSTbusy = False - return 3 - else: + if not messageJson.get('actor'): print('Message arriving at inbox queue has no actor') self._400() self.server.POSTbusy = False return 3 + # actor should be a string + if not isinstance(messageJson['actor'], str): + self._400() + self.server.POSTbusy = False + return 3 + + # actor should look like a url + if '://' not in messageJson['actor'] or \ + '.' not in messageJson['actor']: + print('POST actor does not look like a url ' + + messageJson['actor']) + self._400() + self.server.POSTbusy = False + return 3 + + # sent by an actor on a local network address? + if not self.server.allowLocalNetworkAccess: + localNetworkPatternList = getLocalNetworkAddresses() + for localNetworkPattern in localNetworkPatternList: + if localNetworkPattern in messageJson['actor']: + print('POST actor contains local network address ' + + messageJson['actor']) + self._400() + self.server.POSTbusy = False + return 3 + + messageDomain, messagePort = \ + getDomainFromActor(messageJson['actor']) + if isBlockedDomain(self.server.baseDir, messageDomain): + print('POST from blocked domain ' + messageDomain) + self._400() + self.server.POSTbusy = False + return 3 + # if the inbox queue is full then return a busy code if len(self.server.inboxQueue) >= self.server.maxQueueLength: if messageDomain: