|
@@ -1,21 +1,28 @@
|
|
#include "../include/Sniffer.h"
|
|
#include "../include/Sniffer.h"
|
|
|
|
+#include <cstdlib>
|
|
#include <iostream>
|
|
#include <iostream>
|
|
|
|
|
|
-Sniffer::Sniffer(std::string interfaceName) : sniffer(interfaceName) {
|
|
|
|
|
|
+Sniffer::Sniffer(const std::string &interfaceName) {
|
|
Tins::SnifferConfiguration config;
|
|
Tins::SnifferConfiguration config;
|
|
config.set_promisc_mode(true);
|
|
config.set_promisc_mode(true);
|
|
|
|
|
|
- sniffer = Tins::Sniffer(interfaceName, config);
|
|
|
|
|
|
+ try {
|
|
|
|
+ sniffer = new Tins::Sniffer(interfaceName, config);
|
|
|
|
+ } catch (const Tins::pcap_error &e) {
|
|
|
|
+ std::cerr << "An error accured setting up the sniffer: " << e.what()
|
|
|
|
+ << std::endl;
|
|
|
|
+ std::exit(EXIT_FAILURE);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
Sniffer::~Sniffer() {}
|
|
Sniffer::~Sniffer() {}
|
|
|
|
|
|
void Sniffer::startSniffing() {
|
|
void Sniffer::startSniffing() {
|
|
- sniffer.sniff_loop(make_sniffer_handler(this, &Sniffer::handle));
|
|
|
|
|
|
+ sniffer->sniff_loop(make_sniffer_handler(this, &Sniffer::handle));
|
|
}
|
|
}
|
|
|
|
|
|
void Sniffer::setFilter(std::string filterString) {
|
|
void Sniffer::setFilter(std::string filterString) {
|
|
- sniffer.set_filter(filterString);
|
|
|
|
|
|
+ sniffer->set_filter(filterString);
|
|
}
|
|
}
|
|
|
|
|
|
bool Sniffer::handle(Tins::PDU &pdu) {
|
|
bool Sniffer::handle(Tins::PDU &pdu) {
|