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

Added DataLinkType class.

This commit is contained in:
Matias Fontanini
2014-08-30 14:28:29 -03:00
parent 88fc1e7a87
commit 9d2a60ef43
3 changed files with 116 additions and 9 deletions

View File

@@ -36,15 +36,7 @@
namespace Tins {
PacketWriter::PacketWriter(const std::string &file_name, LinkType lt) {
handle = pcap_open_dead(lt, 65535);
if(!handle)
throw std::runtime_error("Error creating pcap handle");
dumper = pcap_dump_open(handle, file_name.c_str());
if(!dumper) {
// RAII plx
pcap_close(handle);
throw std::runtime_error(pcap_geterr(handle));
}
init(file_name, lt);
}
PacketWriter::~PacketWriter() {
@@ -70,4 +62,17 @@ void PacketWriter::write(PDU &pdu) {
};
pcap_dump((u_char*)dumper, &header, &buffer[0]);
}
void PacketWriter::init(const std::string& file_name, int link_type) {
handle = pcap_open_dead(link_type, 65535);
if(!handle)
throw std::runtime_error("Error creating pcap handle");
dumper = pcap_dump_open(handle, file_name.c_str());
if(!dumper) {
// RAII plx
pcap_close(handle);
throw std::runtime_error(pcap_geterr(handle));
}
}
}