Helper class for dealing with libpcap handles. More...
#include <pcap-helper.hpp>
Classes | |
class | Error |
Public Member Functions | |
PcapHelper (const std::string &interfaceName) | |
Create a libpcap context for live packet capture on a network interface. More... | |
~PcapHelper () | |
void | activate (int dlt) |
Start capturing packets. More... | |
void | close () |
Stop capturing and close the handle. More... | |
int | getFd () const |
Obtain a file descriptor that can be used in calls such as select(2) and poll(2). More... | |
std::string | getLastError () const |
Get last error message. More... | |
size_t | getNDropped () const |
Get the number of packets dropped by the kernel, as reported by libpcap. More... | |
void | setPacketFilter (const char *filter) const |
Install a BPF filter on the receiving socket. More... | |
std::tuple< const uint8_t *, size_t, std::string > | readNextPacket () const |
Read the next packet captured on the interface. More... | |
operator pcap_t * () const | |
Helper class for dealing with libpcap handles.
Definition at line 45 of file pcap-helper.hpp.
|
explicit |
Create a libpcap context for live packet capture on a network interface.
Error | on any error |
Definition at line 38 of file pcap-helper.cpp.
Referenced by nfd::face::PcapHelper::Error::Error().
nfd::face::PcapHelper::~PcapHelper | ( | ) |
Definition at line 56 of file pcap-helper.cpp.
References close().
Referenced by nfd::face::PcapHelper::Error::Error().
void nfd::face::PcapHelper::activate | ( | int | dlt | ) |
Start capturing packets.
dlt | The link-layer header type to be used. |
Error | on any error |
Definition at line 62 of file pcap-helper.cpp.
References getLastError().
Referenced by nfd::face::PcapHelper::Error::Error(), nfd::face::EthernetTransport::EthernetTransport(), and nfd::face::EthernetChannel::listen().
void nfd::face::PcapHelper::close | ( | ) |
Stop capturing and close the handle.
Definition at line 76 of file pcap-helper.cpp.
Referenced by nfd::face::EthernetTransport::doClose(), nfd::face::PcapHelper::Error::Error(), and ~PcapHelper().
int nfd::face::PcapHelper::getFd | ( | ) | const |
Obtain a file descriptor that can be used in calls such as select(2) and poll(2).
Error | on any error |
Definition at line 85 of file pcap-helper.cpp.
Referenced by nfd::face::PcapHelper::Error::Error(), nfd::face::EthernetTransport::EthernetTransport(), and nfd::face::EthernetChannel::listen().
std::string nfd::face::PcapHelper::getLastError | ( | ) | const |
Get last error message.
Definition at line 97 of file pcap-helper.cpp.
Referenced by activate(), nfd::face::EthernetTransport::doClose(), nfd::face::PcapHelper::Error::Error(), getNDropped(), readNextPacket(), and setPacketFilter().
size_t nfd::face::PcapHelper::getNDropped | ( | ) | const |
Get the number of packets dropped by the kernel, as reported by libpcap.
Error | on any error |
Definition at line 103 of file pcap-helper.cpp.
References getLastError().
Referenced by nfd::face::EthernetTransport::doClose(), nfd::face::PcapHelper::Error::Error(), and nfd::face::EthernetChannel::listen().
void nfd::face::PcapHelper::setPacketFilter | ( | const char * | filter | ) | const |
Install a BPF filter on the receiving socket.
filter | Null-terminated string containing the BPF program source. |
Error | on any error |
Definition at line 113 of file pcap-helper.cpp.
References getLastError(), and PCAP_NETMASK_UNKNOWN.
Referenced by nfd::face::PcapHelper::Error::Error(), nfd::face::EthernetChannel::listen(), nfd::face::MulticastEthernetTransport::MulticastEthernetTransport(), and nfd::face::UnicastEthernetTransport::UnicastEthernetTransport().
std::tuple< const uint8_t *, size_t, std::string > nfd::face::PcapHelper::readNextPacket | ( | ) | const |
Read the next packet captured on the interface.
Definition at line 126 of file pcap-helper.cpp.
References getLastError().
Referenced by nfd::face::EthernetTransport::doClose(), nfd::face::PcapHelper::Error::Error(), and nfd::face::EthernetChannel::listen().
|
inline |
Definition at line 134 of file pcap-helper.hpp.