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

Don't allow receiving l2 packets on windows.

This commit is contained in:
Matias Fontanini
2015-04-18 18:56:16 -07:00
parent 2fa4c2ade3
commit 147c1a4315
4 changed files with 13 additions and 3 deletions

View File

@@ -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.

View File

@@ -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.
*

View File

@@ -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
}

View File

@@ -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<int> 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);