@@ -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
6362class MonitorMapping (object ):
0 commit comments