From f872f1be2aa4bb5ce572ce85e272216918b778a4 Mon Sep 17 00:00:00 2001 From: gpotter2 Date: Wed, 7 Mar 2018 22:54:14 +0100 Subject: [PATCH] Fix scapy used with Winpcap on Windows --- scapy/arch/pcapdnet.py | 2 +- scapy/arch/windows/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scapy/arch/pcapdnet.py b/scapy/arch/pcapdnet.py index 8a3ae65d5..43586e8a8 100644 --- a/scapy/arch/pcapdnet.py +++ b/scapy/arch/pcapdnet.py @@ -143,7 +143,7 @@ if conf.use_winpcapy: if pcap_set_rfmon(self.pcap, 1) != 0: warning("Could not set monitor mode") if pcap_activate(self.pcap) != 0: - warning("Could not activate the handler") + raise OSError("Could not activate the pcap handler") else: self.pcap = pcap_open_live(self.iface, snaplen, promisc, to_ms, self.errbuf) self.header = POINTER(pcap_pkthdr)() diff --git a/scapy/arch/windows/__init__.py b/scapy/arch/windows/__init__.py index c12561323..29ae2895a 100755 --- a/scapy/arch/windows/__init__.py +++ b/scapy/arch/windows/__init__.py @@ -855,7 +855,7 @@ def open_pcap(iface, *args, **kargs): iface_pcap_name = pcapname(iface) if not isinstance(iface, NetworkInterface) and iface_pcap_name is not None: iface = IFACES.dev_from_name(iface) - if isinstance(iface, NetworkInterface) and iface.ismonitor(): + if conf.use_npcap and isinstance(iface, NetworkInterface) and iface.ismonitor(): kargs["monitor"] = True return _orig_open_pcap(iface_pcap_name, *args, **kargs) pcapdnet.open_pcap = open_pcap