def get_sniffer(request_handler, reply_handler=None, event_handler=None): config = SnifferConfig() config.track_replies = True sniffer = Sniffer(config) sniffer.add_request_handler(request_handler) if reply_handler: sniffer.add_reply_handler(reply_handler) if event_handler: sniffer.add_event_handler(event_handler) return sniffer
def get_sniffer(printer, with_pings=True): config = SnifferConfig() config.track_replies = True if with_pings: config.include_pings() sniffer = Sniffer(config) sniffer.add_request_handler(printer.request_handler) sniffer.add_reply_handler(printer.reply_handler) sniffer.add_event_handler(printer.event_handler) return sniffer
def _test_requests_replies(pcap_name, request_cls, reply_cls, nreqs, nreps): requests = [] replies = [] def handler(msg): if isinstance(msg, request_cls): requests.append(msg) elif isinstance(msg, reply_cls): replies.append(msg) config = SnifferConfig() config.track_replies = True sniffer = Sniffer(config) sniffer.add_request_handler(handler) sniffer.add_reply_handler(handler) consume_packets(pcap_name, sniffer) assert len(requests) == nreqs assert len(replies) == nreps sniffer.stop()