1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-26 20:01:35 +01:00

Added pcap_setdirection to sniffer

This commit is contained in:
Jesus Llorente
2015-11-23 23:10:34 +02:00
parent 534bdaf30b
commit b07deba105
2 changed files with 32 additions and 1 deletions

View File

@@ -224,6 +224,10 @@ void BaseSniffer::set_timeout(int ms) {
pcap_set_timeout(handle, ms);
}
int BaseSniffer::set_direction(tins_direction_t d) {
return pcap_setdirection(handle, d);
}
// ****************************** Sniffer ******************************
Sniffer::Sniffer(const string &device, const SnifferConfiguration& configuration)
@@ -408,7 +412,8 @@ SnifferConfiguration::SnifferConfiguration() :
_timeout(DEFAULT_TIMEOUT),
_promisc(false),
_rfmon(false),
_immediate_mode(false)
_immediate_mode(false),
_direction(PCAP_D_INOUT)
{
}
@@ -417,6 +422,7 @@ void SnifferConfiguration::configure_sniffer_pre_activation(Sniffer& sniffer) co
{
sniffer.set_snap_len(_snap_len);
sniffer.set_timeout(_timeout);
if ((_flags & BUFFER_SIZE) != 0) {
sniffer.set_buffer_size(_buffer_size);
}
@@ -447,6 +453,9 @@ void SnifferConfiguration::configure_sniffer_post_activation(Sniffer& sniffer) c
throw std::runtime_error("Could not set the filter! ");
}
}
if (sniffer.set_direction(_direction) < 0) {
throw std::runtime_error("Could not set the direction! ");
}
}
void SnifferConfiguration::set_snap_len(unsigned snap_len)
@@ -483,6 +492,11 @@ void SnifferConfiguration::set_timeout(unsigned timeout)
_timeout = timeout;
}
void SnifferConfiguration::set_direction(tins_direction_t direction)
{
_direction = direction;
}
void SnifferConfiguration::set_immediate_mode(bool enabled)
{
_flags |= IMMEDIATE_MODE;