1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Allow setting immediate mode on Sniffer.

This commit is contained in:
Matias Fontanini
2015-06-14 10:56:00 -07:00
parent 8bb837eda8
commit c42c18f5df
3 changed files with 35 additions and 9 deletions

View File

@@ -341,6 +341,13 @@ void Sniffer::set_promisc_mode(bool promisc_enabled)
}
}
void Sniffer::set_immediate_mode(bool enabled)
{
if (pcap_set_immediate_mode(get_pcap_handle(), enabled)) {
throw runtime_error(pcap_geterr(get_pcap_handle()));
}
}
void Sniffer::set_rfmon(bool rfmon_enabled)
{
#ifndef _WIN32
@@ -393,9 +400,10 @@ SnifferConfiguration::SnifferConfiguration() :
_flags(0),
_snap_len(DEFAULT_SNAP_LEN),
_buffer_size(0),
_timeout(DEFAULT_TIMEOUT),
_promisc(false),
_rfmon(false),
_timeout(DEFAULT_TIMEOUT)
_immediate_mode(false)
{
}
@@ -413,6 +421,9 @@ void SnifferConfiguration::configure_sniffer_pre_activation(Sniffer& sniffer) co
if ((_flags & RFMON) != 0) {
sniffer.set_rfmon(_rfmon);
}
if ((_flags & IMMEDIATE_MODE) != 0) {
sniffer.set_immediate_mode(_immediate_mode);
}
}
void SnifferConfiguration::configure_sniffer_pre_activation(FileSniffer& sniffer) const
@@ -467,4 +478,10 @@ void SnifferConfiguration::set_timeout(unsigned timeout)
_timeout = timeout;
}
void SnifferConfiguration::set_immediate_mode(bool enabled)
{
_flags |= IMMEDIATE_MODE;
_immediate_mode = enabled;
}
}