diff --git a/daemon.py b/daemon.py index 5f150d154..95190cc29 100644 --- a/daemon.py +++ b/daemon.py @@ -1153,7 +1153,7 @@ class PubServer(BaseHTTPRequestHandler): self._400() return True if self.server.nodeinfo_is_active: - print('nodeinfo is busy') + print('nodeinfo is busy during request from ' + referer_domain) self._503() return True self.server.nodeinfo_is_active = True @@ -1175,10 +1175,19 @@ class PubServer(BaseHTTPRequestHandler): self._400() self.server.nodeinfo_is_active = False return True - if not site_is_active(httpPrefix + '://' + referer_domain, - calling_site_timeout): - print('nodeinfo referer domain is not active ' + - referer_domain) + + referer_url = httpPrefix + '://' + referer_domain + if referer_domain + '/' in ua_str: + referer_url = referer_url + ua_str.split(referer_domain)[1] + if ' ' in referer_url: + referer_url = referer_url.split(' ')[0] + if ';' in referer_url: + referer_url = referer_url.split(';')[0] + if ')' in referer_url: + referer_url = referer_url.split(')')[0] + if not site_is_active(referer_url, calling_site_timeout): + print('nodeinfo referer url is not active ' + + referer_url) self._400() self.server.nodeinfo_is_active = False return True diff --git a/utils.py b/utils.py index 58638e408..593ea7895 100644 --- a/utils.py +++ b/utils.py @@ -2891,9 +2891,9 @@ def user_agent_domain(user_agent: str, debug: bool) -> str: """If the User-Agent string contains a domain then return it """ - if '+http' not in user_agent: + if 'http' not in user_agent: return None - agent_domain = user_agent.split('+http')[1].strip() + agent_domain = user_agent.split('http')[1].strip() if '://' in agent_domain: agent_domain = agent_domain.split('://')[1] if '/' in agent_domain: