in zktraffic/base/sniffer.py [0:0]
def __init__(self,
config,
request_handler=None,
reply_handler=None,
event_handler=None,
error_to_stderr=False):
"""
This sniffer will intercept:
- client requests
- server replies
- server events (i.e.: connection state change or, most of the times, watches)
Hence handlers for each.
"""
super(Sniffer, self).__init__()
self._error_to_stderr = error_to_stderr
self._packet_size = 65535
self._request_handlers = []
self._reply_handlers = []
self._event_handlers = []
self._requests_xids = defaultdict(dict) # if tracking replies, keep a tab for seen reqs
self._four_letter_mode = {} # key: client addr, val: four letter
self._wants_stop = False
self.config = config
self.add_request_handler(request_handler)
self.add_reply_handler(reply_handler)
self.add_event_handler(event_handler)
self.setDaemon(True)