From 147c1a431523a1b235520fb0eb16dcfa50be56fe Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Sat, 18 Apr 2015 18:56:16 -0700 Subject: [PATCH] Don't allow receiving l2 packets on windows. --- include/tins/ethernetII.h | 2 ++ include/tins/packet_sender.h | 5 ++++- src/ethernetII.cpp | 4 +++- src/packet_sender.cpp | 5 ++++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/include/tins/ethernetII.h b/include/tins/ethernetII.h index 10563ab..fc2bb58 100644 --- a/include/tins/ethernetII.h +++ b/include/tins/ethernetII.h @@ -159,12 +159,14 @@ namespace Tins { */ bool matches_response(const uint8_t *ptr, uint32_t total_sz) const; + #ifndef WIN32 /** * \brief Receives a matching response for this packet. * * \sa PDU::recv_response */ PDU *recv_response(PacketSender &sender, const NetworkInterface &iface); + #endif // WIN32 /** * \brief Getter for the PDU's type. diff --git a/include/tins/packet_sender.h b/include/tins/packet_sender.h index 97c5998..bf95794 100644 --- a/include/tins/packet_sender.h +++ b/include/tins/packet_sender.h @@ -296,7 +296,7 @@ namespace Tins { */ PDU *send_recv(PDU &pdu, const NetworkInterface &iface); - #if !defined(WIN32) || defined(HAVE_PACKET_SENDER_PCAP_SENDPACKET) + #ifndef WIN32 /** * \brief Receives a layer 2 PDU response to a previously sent PDU. * @@ -314,6 +314,9 @@ namespace Tins { PDU *recv_l2(PDU &pdu, struct sockaddr *link_addr, uint32_t len_addr, const NetworkInterface &iface = NetworkInterface()); + #endif // WIN32 + + #if !defined(WIN32) || defined(HAVE_PACKET_SENDER_PCAP_SENDPACKET) /** * \brief Sends a level 2 PDU. * diff --git a/src/ethernetII.cpp b/src/ethernetII.cpp index de3d8e0..dfd430d 100644 --- a/src/ethernetII.cpp +++ b/src/ethernetII.cpp @@ -174,8 +174,9 @@ void EthernetII::write_serialization(uint8_t *buffer, uint32_t total_sz, const P } +#ifndef WIN32 PDU *EthernetII::recv_response(PacketSender &sender, const NetworkInterface &iface) { - #if !defined(BSD) && !defined(__FreeBSD_kernel__) && !defined(HAVE_PACKET_SENDER_PCAP_SENDPACKET) + #if !defined(BSD) && !defined(__FreeBSD_kernel__) struct sockaddr_ll addr; memset(&addr, 0, sizeof(struct sockaddr_ll)); @@ -190,4 +191,5 @@ PDU *EthernetII::recv_response(PacketSender &sender, const NetworkInterface &ifa return sender.recv_l2(*this, 0, 0, iface); #endif } +#endif // WIN32 } diff --git a/src/packet_sender.cpp b/src/packet_sender.cpp index 94a8aea..926027d 100644 --- a/src/packet_sender.cpp +++ b/src/packet_sender.cpp @@ -330,6 +330,9 @@ void PacketSender::send_l2(PDU &pdu, struct sockaddr* link_addr, #endif // HAVE_PACKET_SENDER_PCAP_SENDPACKET } +#endif // !WIN32 || HAVE_PACKET_SENDER_PCAP_SENDPACKET + +#ifndef WIN32 PDU *PacketSender::recv_l2(PDU &pdu, struct sockaddr *link_addr, uint32_t len_addr, const NetworkInterface &iface) { @@ -337,7 +340,7 @@ PDU *PacketSender::recv_l2(PDU &pdu, struct sockaddr *link_addr, std::vector sockets(1, sock); return recv_match_loop(sockets, pdu, link_addr, len_addr); } -#endif // !WIN32 || HAVE_PACKET_SENDER_PCAP_SENDPACKET +#endif // WIN32 PDU *PacketSender::recv_l3(PDU &pdu, struct sockaddr* link_addr, uint32_t len_addr, SocketType type) { open_l3_socket(type);