mirror of
https://github.com/mfontanini/libtins
synced 2026-01-28 12:44:25 +01:00
Added Timestamp conversion to std::chrono::microseconds. BaseSniffer is now movable.
This commit is contained in:
@@ -58,8 +58,8 @@ void PacketWriter::write(PDU &pdu) {
|
||||
gettimeofday(&tm, 0);
|
||||
struct pcap_pkthdr header = {
|
||||
tm,
|
||||
buffer.size(),
|
||||
buffer.size()
|
||||
static_cast<bpf_u_int32>(buffer.size()),
|
||||
static_cast<bpf_u_int32>(buffer.size())
|
||||
};
|
||||
pcap_dump((u_char*)dumper, &header, &buffer[0]);
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <algorithm>
|
||||
#include "sniffer.h"
|
||||
|
||||
|
||||
@@ -38,6 +39,24 @@ BaseSniffer::BaseSniffer() : handle(0), mask(0)
|
||||
{
|
||||
actual_filter.bf_insns = 0;
|
||||
}
|
||||
|
||||
#if TINS_IS_CXX11
|
||||
BaseSniffer::BaseSniffer(BaseSniffer &&rhs)
|
||||
{
|
||||
*this = std::move(rhs);
|
||||
}
|
||||
|
||||
BaseSniffer& BaseSniffer::operator=(BaseSniffer &&rhs)
|
||||
{
|
||||
handle = 0;
|
||||
mask = rhs.mask;
|
||||
iface_type = rhs.iface_type;
|
||||
actual_filter.bf_insns = 0;
|
||||
std::swap(handle, rhs.handle);
|
||||
std::swap(actual_filter, rhs.actual_filter);
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
|
||||
BaseSniffer::~BaseSniffer() {
|
||||
if(actual_filter.bf_insns)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
#include "endianness.h"
|
||||
#include "network_interface.h"
|
||||
#include "packet_sender.h"
|
||||
|
||||
#include "cxxstd.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -115,7 +115,11 @@ bool Utils::resolve_hwaddr(const NetworkInterface &iface, IPv4Address ip,
|
||||
IPv4Address my_ip;
|
||||
NetworkInterface::Info info(iface.addresses());
|
||||
EthernetII packet = ARP::make_arp_request(iface, ip, info.ip_addr, info.hw_addr);
|
||||
std::auto_ptr<PDU> response(sender.send_recv(packet));
|
||||
#if TINS_IS_CXX11
|
||||
std::unique_ptr<PDU> response(sender.send_recv(packet));
|
||||
#else
|
||||
std::auto_ptr<PDU> response(sender.send_recv(packet));
|
||||
#endif
|
||||
if(response.get()) {
|
||||
ARP *arp_resp = response->find_pdu<ARP>();
|
||||
if(arp_resp)
|
||||
|
||||
Reference in New Issue
Block a user