diff --git a/include/sniffer.h b/include/sniffer.h index d59100c..7d5f319 100644 --- a/include/sniffer.h +++ b/include/sniffer.h @@ -66,10 +66,10 @@ namespace Tins { * \brief Creates an instance of sniffer. * \param device The device which will be sniffed. * \param max_packet_size The maximum packet size to be read. - * \param timeout The time in seconds to wait for a packet. + * \param promisc bool indicating wether to put the interface in promiscuous mode. * \param filter A capture filter to compile and use for sniffing sessions.(optional); */ - Sniffer(const std::string &device, unsigned max_packet_size, unsigned timeout = 0, const std::string &filter = "") throw(std::runtime_error); + Sniffer(const std::string &device, unsigned max_packet_size, bool promisc = false, const std::string &filter = "") throw(std::runtime_error); /** * \brief Sniffer destructor. diff --git a/src/sniffer.cpp b/src/sniffer.cpp index 1ecba9e..0daa047 100644 --- a/src/sniffer.cpp +++ b/src/sniffer.cpp @@ -40,13 +40,13 @@ struct LoopData { /** \endcond */ -Tins::Sniffer::Sniffer(const string &device, unsigned max_packet_size, unsigned timeout, const string &filter) throw(std::runtime_error) { +Tins::Sniffer::Sniffer(const string &device, unsigned max_packet_size, bool promisc, const string &filter) throw(std::runtime_error) { char error[PCAP_ERRBUF_SIZE]; if (pcap_lookupnet(device.c_str(), &ip, &mask, error) == -1) { ip = 0; mask = 0; } - handle = pcap_open_live(device.c_str(), max_packet_size, 0, timeout, error); + handle = pcap_open_live(device.c_str(), max_packet_size, promisc, 0, error); if(!handle) throw runtime_error(error); wired = (pcap_datalink (handle) != DLT_IEEE802_11_RADIO); //better plx