Skip to content

Commit 3e08afd

Browse files
author
lijianguo
committed
chore(monitor): BlackMappingAdder when reponse code 50X
1 parent 4504504 commit 3e08afd

1 file changed

Lines changed: 9 additions & 10 deletions

File tree

smartdns/monitor.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def _check(self):
3131
url = self.monitor['url'].replace(host, ip, 1).encode("utf8")
3232
agent = Agent(reactor, contextFactory=SmartClientContextFactory(), connectTimeout=30)
3333
agent.request(b'GET', url, headers=Headers({"host": [host, ]})).addCallbacks(
34-
BlackMappingRemover(ip, self.black_mapping), BlackMappingAdder(ip, self.black_mapping))
34+
BlackMappingChecker(ip, self.black_mapping), BlackMappingAdder(ip, self.black_mapping))
3535

3636
def check(self, ip):
3737
return self.black_mapping[ip] < self.monitor["frequency"]
@@ -40,24 +40,23 @@ def start(self):
4040
task.LoopingCall(self._check).start(self.monitor["interval"])
4141

4242

43-
class BlackMappingRemover(object):
43+
class BlackMappingAdder(object):
4444

4545
def __init__(self, ip, black_mapping):
4646
self.ip = ip
4747
self.black_mapping = black_mapping
4848

4949
def __call__(self, *args, **kwargs):
50-
self.black_mapping[self.ip] = 0
50+
self.black_mapping[self.ip] += 1
5151

5252

53-
class BlackMappingAdder(object):
53+
class BlackMappingChecker(BlackMappingAdder):
5454

55-
def __init__(self, ip, black_mapping):
56-
self.ip = ip
57-
self.black_mapping = black_mapping
58-
59-
def __call__(self, *args, **kwargs):
60-
self.black_mapping[self.ip] += 1
55+
def __call__(self, response, *args, **kwargs):
56+
if response.code < 500:
57+
self.black_mapping[self.ip] = 0
58+
else:
59+
BlackMappingAdder.__call__(self, *args, **kwargs)
6160

6261

6362
class MonitorMapping(object):

0 commit comments

Comments
 (0)