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

Ported almost everything to BSD. Utils::route_entries and sending link layer PDUs still don't work.

This commit is contained in:
Matias Fontanini
2012-11-28 00:11:42 -03:00
parent e6e3e8453b
commit 6696c1b284
23 changed files with 486 additions and 227 deletions

277
depends.d
View File

@@ -1,5 +1,5 @@
src/arp.o: src/arp.cpp include/arp.h include/pdu.h include/endianness.h \
include/hw_address.h include/ip_address.h include/ip.h \
include/arch.h include/hw_address.h include/ip_address.h include/ip.h \
include/small_uint.h include/pdu_option.h include/ethernetII.h \
include/network_interface.h include/rawpdu.h include/constants.h \
include/network_interface.h
@@ -10,6 +10,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/hw_address.h:
include/ip_address.h:
@@ -30,7 +32,8 @@ include/constants.h:
include/network_interface.h:
src/bootp.o: src/bootp.cpp include/bootp.h include/pdu.h \
include/endianness.h include/ip_address.h include/hw_address.h
include/endianness.h include/arch.h include/ip_address.h \
include/hw_address.h
include/bootp.h:
@@ -38,11 +41,13 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/ip_address.h:
include/hw_address.h:
src/crypto.o: src/crypto.cpp include/crypto.h include/dot11.h \
include/pdu.h include/endianness.h include/hw_address.h \
include/pdu.h include/endianness.h include/arch.h include/hw_address.h \
include/small_uint.h include/pdu_option.h include/network_interface.h \
include/ip_address.h include/utils.h include/ipv6_address.h \
include/snap.h include/rawpdu.h
@@ -55,6 +60,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/hw_address.h:
include/small_uint.h:
@@ -72,13 +79,15 @@ include/ipv6_address.h:
include/snap.h:
include/rawpdu.h:
src/dhcp.o: src/dhcp.cpp include/endianness.h include/dhcp.h \
include/bootp.h include/pdu.h include/endianness.h include/ip_address.h \
include/hw_address.h include/pdu_option.h include/ethernetII.h \
include/network_interface.h
src/dhcp.o: src/dhcp.cpp include/endianness.h include/arch.h \
include/dhcp.h include/bootp.h include/pdu.h include/endianness.h \
include/ip_address.h include/hw_address.h include/pdu_option.h \
include/ethernetII.h include/network_interface.h
include/endianness.h:
include/arch.h:
include/dhcp.h:
include/bootp.h:
@@ -97,7 +106,8 @@ include/ethernetII.h:
include/network_interface.h:
src/dns.o: src/dns.cpp include/dns.h include/pdu.h include/endianness.h \
include/dns_record.h include/ip_address.h include/ipv6_address.h
include/arch.h include/dns_record.h include/ip_address.h \
include/ipv6_address.h
include/dns.h:
@@ -105,22 +115,28 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/dns_record.h:
include/ip_address.h:
include/ipv6_address.h:
src/dns_record.o: src/dns_record.cpp include/dns_record.h \
include/endianness.h
include/endianness.h include/arch.h
include/dns_record.h:
include/endianness.h:
src/dot11.o: src/dot11.cpp include/dot11.h include/pdu.h \
include/endianness.h include/hw_address.h include/small_uint.h \
include/pdu_option.h include/network_interface.h include/ip_address.h \
include/rawpdu.h include/rsn_information.h include/packet_sender.h \
include/snap.h
include/arch.h:
src/dot11.o: src/dot11.cpp include/arch.h include/dot11.h include/pdu.h \
include/endianness.h include/arch.h include/hw_address.h \
include/small_uint.h include/pdu_option.h include/network_interface.h \
include/ip_address.h include/rawpdu.h include/rsn_information.h \
include/packet_sender.h include/snap.h
include/arch.h:
include/dot11.h:
@@ -128,6 +144,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/hw_address.h:
include/small_uint.h:
@@ -146,7 +164,7 @@ include/packet_sender.h:
include/snap.h:
src/eapol.o: src/eapol.cpp include/eapol.h include/pdu.h \
include/small_uint.h include/endianness.h include/dot11.h \
include/small_uint.h include/endianness.h include/arch.h include/dot11.h \
include/hw_address.h include/pdu_option.h include/network_interface.h \
include/ip_address.h include/rsn_information.h
@@ -158,6 +176,8 @@ include/small_uint.h:
include/endianness.h:
include/arch.h:
include/dot11.h:
include/hw_address.h:
@@ -169,11 +189,13 @@ include/network_interface.h:
include/ip_address.h:
include/rsn_information.h:
src/ethernetII.o: src/ethernetII.cpp include/ethernetII.h include/pdu.h \
include/endianness.h include/hw_address.h include/network_interface.h \
include/ip_address.h include/packet_sender.h include/rawpdu.h \
include/ip.h include/small_uint.h include/pdu_option.h include/ipv6.h \
include/ipv6_address.h include/arp.h include/constants.h
src/ethernetII.o: src/ethernetII.cpp include/arch.h include/ethernetII.h \
include/pdu.h include/endianness.h include/arch.h include/hw_address.h \
include/network_interface.h include/ip_address.h include/packet_sender.h \
include/rawpdu.h include/ip.h include/small_uint.h include/pdu_option.h \
include/ipv6.h include/ipv6_address.h include/arp.h include/constants.h
include/arch.h:
include/ethernetII.h:
@@ -181,6 +203,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/hw_address.h:
include/network_interface.h:
@@ -205,7 +229,7 @@ include/arp.h:
include/constants.h:
src/icmp.o: src/icmp.cpp include/icmp.h include/pdu.h \
include/endianness.h include/rawpdu.h include/utils.h \
include/endianness.h include/arch.h include/rawpdu.h include/utils.h \
include/ip_address.h include/ipv6_address.h include/hw_address.h
include/icmp.h:
@@ -214,6 +238,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/rawpdu.h:
include/utils.h:
@@ -224,18 +250,42 @@ include/ipv6_address.h:
include/hw_address.h:
src/icmpv6.o: src/icmpv6.cpp include/icmpv6.h include/pdu.h \
include/endianness.h include/small_uint.h
include/ipv6_address.h include/pdu_option.h include/endianness.h \
include/arch.h include/small_uint.h include/ipv6.h include/rawpdu.h \
include/utils.h include/ip_address.h include/hw_address.h \
include/constants.h
include/icmpv6.h:
include/pdu.h:
include/ipv6_address.h:
include/pdu_option.h:
include/endianness.h:
include/arch.h:
include/small_uint.h:
src/ieee802_3.o: src/ieee802_3.cpp include/ieee802_3.h include/pdu.h \
include/endianness.h include/hw_address.h include/network_interface.h \
include/ip_address.h include/packet_sender.h include/llc.h
include/ipv6.h:
include/rawpdu.h:
include/utils.h:
include/ip_address.h:
include/hw_address.h:
include/constants.h:
src/ieee802_3.o: src/ieee802_3.cpp include/arch.h include/ieee802_3.h \
include/pdu.h include/endianness.h include/arch.h include/hw_address.h \
include/network_interface.h include/ip_address.h include/packet_sender.h \
include/llc.h
include/arch.h:
include/ieee802_3.h:
@@ -243,6 +293,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/hw_address.h:
include/network_interface.h:
@@ -253,16 +305,19 @@ include/packet_sender.h:
include/llc.h:
src/ip_address.o: src/ip_address.cpp include/ip_address.h \
include/endianness.h
include/endianness.h include/arch.h
include/ip_address.h:
include/endianness.h:
include/arch.h:
src/ip.o: src/ip.cpp include/ip.h include/pdu.h include/small_uint.h \
include/endianness.h include/ip_address.h include/pdu_option.h \
include/ipv6.h include/ipv6_address.h include/tcp.h include/udp.h \
include/icmp.h include/rawpdu.h include/utils.h include/hw_address.h \
include/packet_sender.h include/constants.h
include/endianness.h include/arch.h include/ip_address.h \
include/pdu_option.h include/ipv6.h include/ipv6_address.h include/tcp.h \
include/udp.h include/icmp.h include/rawpdu.h include/utils.h \
include/hw_address.h include/packet_sender.h include/network_interface.h \
include/constants.h
include/ip.h:
@@ -272,6 +327,8 @@ include/small_uint.h:
include/endianness.h:
include/arch.h:
include/ip_address.h:
include/pdu_option.h:
@@ -294,15 +351,21 @@ include/hw_address.h:
include/packet_sender.h:
include/network_interface.h:
include/constants.h:
src/ipv6_address.o: src/ipv6_address.cpp include/ipv6_address.h
src/ipv6_address.o: src/ipv6_address.cpp include/arch.h \
include/ipv6_address.h
include/arch.h:
include/ipv6_address.h:
src/ipv6.o: src/ipv6.cpp include/ipv6.h include/pdu.h \
include/endianness.h include/small_uint.h include/pdu_option.h \
include/ipv6_address.h include/constants.h include/packet_sender.h \
include/ip.h include/ip_address.h include/tcp.h include/udp.h \
include/icmp.h include/rawpdu.h
include/endianness.h include/arch.h include/small_uint.h \
include/pdu_option.h include/ipv6_address.h include/constants.h \
include/packet_sender.h include/network_interface.h include/hw_address.h \
include/ip_address.h include/ip.h include/tcp.h include/udp.h \
include/icmp.h include/icmpv6.h include/rawpdu.h
include/ipv6.h:
@@ -310,6 +373,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/small_uint.h:
include/pdu_option.h:
@@ -320,19 +385,25 @@ include/constants.h:
include/packet_sender.h:
include/ip.h:
include/network_interface.h:
include/hw_address.h:
include/ip_address.h:
include/ip.h:
include/tcp.h:
include/udp.h:
include/icmp.h:
include/icmpv6.h:
include/rawpdu.h:
src/llc.o: src/llc.cpp include/pdu.h include/llc.h include/pdu.h \
include/endianness.h include/rawpdu.h
include/endianness.h include/arch.h include/rawpdu.h
include/pdu.h:
@@ -342,11 +413,14 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/rawpdu.h:
src/loopback.o: src/loopback.cpp include/loopback.h include/pdu.h \
include/packet_sender.h include/ip.h include/small_uint.h \
include/endianness.h include/ip_address.h include/pdu_option.h \
include/llc.h include/rawpdu.h
include/packet_sender.h include/network_interface.h include/hw_address.h \
include/ip_address.h include/ip.h include/small_uint.h \
include/endianness.h include/arch.h include/pdu_option.h include/llc.h \
include/arch.h include/rawpdu.h
include/loopback.h:
@@ -354,22 +428,33 @@ include/pdu.h:
include/packet_sender.h:
include/network_interface.h:
include/hw_address.h:
include/ip_address.h:
include/ip.h:
include/small_uint.h:
include/endianness.h:
include/ip_address.h:
include/arch.h:
include/pdu_option.h:
include/llc.h:
include/arch.h:
include/rawpdu.h:
src/network_interface.o: src/network_interface.cpp \
src/network_interface.o: src/network_interface.cpp include/arch.h \
include/network_interface.h include/hw_address.h include/ip_address.h \
include/utils.h include/ipv6_address.h include/endianness.h
include/utils.h include/ipv6_address.h include/endianness.h \
include/arch.h
include/arch.h:
include/network_interface.h:
@@ -382,12 +467,25 @@ include/utils.h:
include/ipv6_address.h:
include/endianness.h:
src/packet_sender.o: src/packet_sender.cpp include/pdu.h \
include/packet_sender.h
include/arch.h:
src/packet_sender.o: src/packet_sender.cpp include/arch.h include/pdu.h \
include/packet_sender.h include/network_interface.h include/hw_address.h \
include/ip_address.h include/network_interface.h
include/arch.h:
include/pdu.h:
include/packet_sender.h:
include/network_interface.h:
include/hw_address.h:
include/ip_address.h:
include/network_interface.h:
src/packet_writer.o: src/packet_writer.cpp include/packet_writer.h \
include/utils.h include/ip_address.h include/ipv6_address.h \
include/hw_address.h include/pdu.h
@@ -404,7 +502,8 @@ include/hw_address.h:
include/pdu.h:
src/pdu.o: src/pdu.cpp include/pdu.h include/rawpdu.h include/pdu.h \
include/packet_sender.h
include/packet_sender.h include/network_interface.h include/hw_address.h \
include/ip_address.h
include/pdu.h:
@@ -413,11 +512,19 @@ include/rawpdu.h:
include/pdu.h:
include/packet_sender.h:
src/radiotap.o: src/radiotap.cpp include/radiotap.h include/pdu.h \
include/endianness.h include/network_interface.h include/hw_address.h \
include/ip_address.h include/dot11.h include/small_uint.h \
include/pdu_option.h include/utils.h include/ipv6_address.h \
include/packet_sender.h
include/network_interface.h:
include/hw_address.h:
include/ip_address.h:
src/radiotap.o: src/radiotap.cpp include/arch.h include/radiotap.h \
include/pdu.h include/endianness.h include/arch.h \
include/network_interface.h include/hw_address.h include/ip_address.h \
include/dot11.h include/small_uint.h include/pdu_option.h \
include/utils.h include/ipv6_address.h include/packet_sender.h
include/arch.h:
include/radiotap.h:
@@ -425,6 +532,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/network_interface.h:
include/hw_address.h:
@@ -448,15 +557,17 @@ include/rawpdu.h:
include/pdu.h:
src/rsn_information.o: src/rsn_information.cpp include/rsn_information.h \
include/endianness.h
include/endianness.h include/arch.h
include/rsn_information.h:
include/endianness.h:
include/arch.h:
src/snap.o: src/snap.cpp include/snap.h include/pdu.h \
include/endianness.h include/small_uint.h include/constants.h \
include/arp.h include/hw_address.h include/ip_address.h include/ip.h \
include/pdu_option.h include/eapol.h
include/endianness.h include/arch.h include/small_uint.h \
include/constants.h include/arp.h include/hw_address.h \
include/ip_address.h include/ip.h include/pdu_option.h include/eapol.h
include/snap.h:
@@ -464,6 +575,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/small_uint.h:
include/constants.h:
@@ -480,10 +593,11 @@ include/pdu_option.h:
include/eapol.h:
src/sniffer.o: src/sniffer.cpp include/sniffer.h include/pdu.h \
include/ethernetII.h include/endianness.h include/hw_address.h \
include/network_interface.h include/ip_address.h include/radiotap.h \
include/packet.h include/timestamp.h include/cxxstd.h include/loopback.h \
include/dot11.h include/small_uint.h include/pdu_option.h
include/ethernetII.h include/endianness.h include/arch.h \
include/hw_address.h include/network_interface.h include/ip_address.h \
include/radiotap.h include/packet.h include/cxxstd.h include/timestamp.h \
include/loopback.h include/dot11.h include/small_uint.h \
include/pdu_option.h
include/sniffer.h:
@@ -493,6 +607,8 @@ include/ethernetII.h:
include/endianness.h:
include/arch.h:
include/hw_address.h:
include/network_interface.h:
@@ -503,10 +619,10 @@ include/radiotap.h:
include/packet.h:
include/timestamp.h:
include/cxxstd.h:
include/timestamp.h:
include/loopback.h:
include/dot11.h:
@@ -515,7 +631,7 @@ include/small_uint.h:
include/pdu_option.h:
src/tcp.o: src/tcp.cpp include/tcp.h include/pdu.h include/endianness.h \
include/small_uint.h include/pdu_option.h include/ip.h \
include/arch.h include/small_uint.h include/pdu_option.h include/ip.h \
include/ip_address.h include/ipv6.h include/ipv6_address.h \
include/constants.h include/rawpdu.h include/utils.h \
include/hw_address.h
@@ -526,6 +642,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/small_uint.h:
include/pdu_option.h:
@@ -547,11 +665,11 @@ include/utils.h:
include/hw_address.h:
src/tcp_stream.o: src/tcp_stream.cpp include/rawpdu.h include/pdu.h \
include/tcp_stream.h include/sniffer.h include/ethernetII.h \
include/endianness.h include/hw_address.h include/network_interface.h \
include/ip_address.h include/radiotap.h include/packet.h \
include/timestamp.h include/cxxstd.h include/loopback.h include/dot11.h \
include/small_uint.h include/pdu_option.h include/tcp.h include/utils.h \
include/ipv6_address.h include/ip.h
include/endianness.h include/arch.h include/hw_address.h \
include/network_interface.h include/ip_address.h include/radiotap.h \
include/packet.h include/cxxstd.h include/timestamp.h include/loopback.h \
include/dot11.h include/small_uint.h include/pdu_option.h include/tcp.h \
include/utils.h include/ipv6_address.h include/ip.h
include/rawpdu.h:
@@ -565,6 +683,8 @@ include/ethernetII.h:
include/endianness.h:
include/arch.h:
include/hw_address.h:
include/network_interface.h:
@@ -575,10 +695,10 @@ include/radiotap.h:
include/packet.h:
include/timestamp.h:
include/cxxstd.h:
include/timestamp.h:
include/loopback.h:
include/dot11.h:
@@ -595,7 +715,7 @@ include/ipv6_address.h:
include/ip.h:
src/udp.o: src/udp.cpp include/udp.h include/pdu.h include/endianness.h \
include/constants.h include/utils.h include/ip_address.h \
include/arch.h include/constants.h include/utils.h include/ip_address.h \
include/ipv6_address.h include/hw_address.h include/ip.h \
include/small_uint.h include/pdu_option.h include/rawpdu.h
@@ -605,6 +725,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/constants.h:
include/utils.h:
@@ -622,11 +744,14 @@ include/small_uint.h:
include/pdu_option.h:
include/rawpdu.h:
src/utils.o: src/utils.cpp include/utils.h include/ip_address.h \
include/ipv6_address.h include/hw_address.h include/pdu.h include/arp.h \
include/pdu.h include/endianness.h include/ethernetII.h \
include/network_interface.h include/endianness.h \
include/network_interface.h include/packet_sender.h include/cxxstd.h
src/utils.o: src/utils.cpp include/arch.h include/utils.h \
include/ip_address.h include/ipv6_address.h include/hw_address.h \
include/pdu.h include/arp.h include/pdu.h include/endianness.h \
include/arch.h include/ethernetII.h include/network_interface.h \
include/endianness.h include/network_interface.h include/packet_sender.h \
include/cxxstd.h
include/arch.h:
include/utils.h:
@@ -644,6 +769,8 @@ include/pdu.h:
include/endianness.h:
include/arch.h:
include/ethernetII.h:
include/network_interface.h:

37
include/arch.h Normal file
View File

@@ -0,0 +1,37 @@
/*
* Copyright (c) 2012, Nasel
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef TINS_MACROS_H
#define TINS_MACROS_H
#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
#include <sys/param.h>
#endif
#endif

View File

@@ -31,12 +31,19 @@
#define TINS_ENDIANNESS_H
#include <stdint.h>
#ifndef WIN32
#include "arch.h"
#ifdef BSD
#include <sys/endian.h>
#define TINS_IS_LITTLE_ENDIAN (_BYTE_ORDER == _LITTLE_ENDIAN)
#define TINS_IS_BIG_ENDIAN (_BYTE_ORDER == _BIG_ENDIAN)
#elif !defined(WIN32)
#include <endian.h>
#define TINS_IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)
#define TINS_IS_BIG_ENDIAN (__BYTE_ORDER == __BIG_ENDIAN)
#endif
#define TINS_IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)
#define TINS_IS_BIG_ENDIAN (__BYTE_ORDER == __BIG_ENDIAN)
namespace Tins {
namespace Endian {

View File

@@ -141,14 +141,6 @@ namespace Tins {
*/
void set_echo_request(uint16_t id, uint16_t seq);
/**
* \brief Sets echo request flag for this PDU.
*
* This uses a global id and sequence number to fill the request's
* fields.
*/
void set_echo_request();
/**
* \brief Sets echo reply flag for this PDU.
*
@@ -157,14 +149,6 @@ namespace Tins {
*/
void set_echo_reply(uint16_t id, uint16_t seq);
/**
* \brief Sets echo reply flag for this PDU.
*
* This uses a global id and sequence number to fill the request's
* fields.
*/
void set_echo_reply();
/**
* \brief Sets information request flag for this PDU.
*
@@ -317,8 +301,6 @@ namespace Tins {
return new ICMP(*this);
}
private:
static uint16_t global_id, global_seq;
struct icmphdr {
uint8_t type;
uint8_t code;
@@ -330,7 +312,7 @@ namespace Tins {
} echo;
uint32_t gateway;
struct {
uint16_t __unused;
uint16_t unused;
uint16_t mtu;
} frag;
uint8_t pointer;

View File

@@ -36,6 +36,7 @@
#include "endianness.h"
#include "ip_address.h"
#include "pdu_option.h"
#include "arch.h"
namespace Tins {
@@ -257,7 +258,14 @@ namespace Tins {
*
* \return The total length of this IP PDU.
*/
uint16_t tot_len() const { return Endian::be_to_host(_ip.tot_len); }
uint16_t tot_len() const {
// BSD wants this in host byte order............
#ifdef BSD
return _ip.tot_len;
#else
return Endian::be_to_host(_ip.tot_len);
#endif
}
/**
* \brief Getter for the id field.

View File

@@ -36,12 +36,13 @@
#include <vector>
#include <stdint.h>
#include <map>
#include "network_interface.h"
struct timeval;
namespace Tins {
class PDU;
/**
* \brief Class that enables sending the created PDUs
*
@@ -87,7 +88,7 @@ namespace Tins {
*
* If this operation fails, then a SocketOpenError will be thrown.
*/
void open_l2_socket();
void open_l2_socket(const NetworkInterface& iface = NetworkInterface());
#endif // WIN32
/**

View File

@@ -32,9 +32,15 @@
#include <stdexcept>
#include <algorithm>
#include <utility>
#include "arch.h"
#ifndef WIN32
#ifdef BSD
#include <net/if_dl.h>
#else
#include <netpacket/packet.h>
#endif
#include <net/ethernet.h>
#include <netpacket/packet.h>
#include <netinet/in.h>
#endif
#include "dot11.h"
@@ -170,17 +176,20 @@ void Dot11::send(PacketSender &sender) {
if(!_iface)
throw std::runtime_error("Interface has not been set");
struct sockaddr_ll addr;
#ifndef BSD
sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
memset(&addr, 0, sizeof(struct sockaddr_ll));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = 6;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _header.addr1, 6);
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = 6;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _header.addr1, 6);
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
#else
sender.send_l2(*this, 0, 0);
#endif
}
#endif // WIN32
@@ -208,7 +217,9 @@ void Dot11::write_serialization(uint8_t *buffer, uint32_t total_sz, const PDU *p
Dot11 *Dot11::from_bytes(const uint8_t *buffer, uint32_t total_sz) {
// We only need the control field, the length of the PDU will depend on the flags set.
if(total_sz < sizeof(ieee80211_header::control))
// This should be sizeof(ieee80211_header::control), but gcc 4.2 complains
if(total_sz < 2)
throw runtime_error("Not enough size for a IEEE 802.11 header in the buffer.");
const ieee80211_header *hdr = (const ieee80211_header*)buffer;
Dot11 *ret = 0;

View File

@@ -31,10 +31,15 @@
#include <cstring>
#include <stdexcept>
#include <algorithm>
#include "arch.h"
#ifndef WIN32
#include <net/ethernet.h>
#ifdef BSD
#include <net/if_dl.h>
#else
#include <netpacket/packet.h>
#endif
#include <netinet/in.h>
#include <netpacket/packet.h>
#include <net/ethernet.h>
#endif
#include "ethernetII.h"
#include "packet_sender.h"
@@ -111,17 +116,22 @@ uint32_t EthernetII::header_size() const {
void EthernetII::send(PacketSender &sender) {
if(!_iface)
throw std::runtime_error("Interface has not been set");
struct sockaddr_ll addr;
#ifndef BSD
struct sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
memset(&addr, 0, sizeof(struct sockaddr_ll));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, address_type::address_size);
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, address_type::address_size);
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
#else
sender.send_l2(*this, 0, 0);
#endif
}
#endif // WIN32
@@ -163,16 +173,20 @@ void EthernetII::write_serialization(uint8_t *buffer, uint32_t total_sz, const P
#ifndef WIN32
PDU *EthernetII::recv_response(PacketSender &sender) {
struct sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
#ifndef BSD
struct sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, address_type::address_size);
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, address_type::address_size);
return sender.recv_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
return sender.recv_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
#else
return sender.recv_l2(*this, 0, 0);
#endif
}
#endif // WIN32

View File

@@ -37,24 +37,10 @@
#include "rawpdu.h"
#include "utils.h"
uint16_t Tins::ICMP::global_id = 0, Tins::ICMP::global_seq = 0;
Tins::ICMP::ICMP(Flags flag)
{
std::memset(&_icmp, 0, sizeof(icmphdr));
switch(flag) {
case ECHO_REPLY:
break;
case ECHO_REQUEST:
set_echo_request();
break;
case DEST_UNREACHABLE:
set_dest_unreachable();
break;
default:
break;
};
type(flag);
}
Tins::ICMP::ICMP(const uint8_t *buffer, uint32_t total_sz)
@@ -109,28 +95,12 @@ void Tins::ICMP::set_echo_request(uint16_t id, uint16_t seq) {
sequence(seq);
}
void Tins::ICMP::set_echo_request() {
set_echo_request(global_id++, global_seq++);
if(global_id == 0xffff)
global_id = 0;
if(global_seq == 0xffff)
global_seq = 0;
}
void Tins::ICMP::set_echo_reply(uint16_t id, uint16_t seq) {
type(ECHO_REPLY);
this->id(id);
sequence(seq);
}
void Tins::ICMP::set_echo_reply() {
set_echo_reply(global_id++, global_seq++);
if(global_id == 0xffff)
global_id = 0;
if(global_seq == 0xffff)
global_seq = 0;
}
void Tins::ICMP::set_info_request(uint16_t id, uint16_t seq) {
type(INFO_REQUEST);
code(0);

View File

@@ -77,7 +77,7 @@ ICMPv6::ICMPv6(const uint8_t *buffer, uint32_t total_sz)
void ICMPv6::parse_options(const uint8_t *&buffer, uint32_t &total_sz) {
while(total_sz > 0) {
if(total_sz < 8 || (buffer[1] * 8) > total_sz)
if(total_sz < 8 || (static_cast<uint32_t>(buffer[1]) * 8) > total_sz)
throw std::runtime_error("Not enough size for options");
// size(option) = option_size - identifier_size - length_identifier_size
add_option(icmpv6_option(buffer[0], buffer[1] * 8 - sizeof(uint8_t) * 2, buffer + 2));

View File

@@ -31,10 +31,15 @@
#include <cstring>
#include <stdexcept>
#include <algorithm>
#include "arch.h"
#ifndef WIN32
#ifdef BSD
#include <net/if_dl.h>
#else
#include <netpacket/packet.h>
#endif
#include <net/ethernet.h>
#include <netinet/in.h>
#include <netpacket/packet.h>
#endif
#include "ieee802_3.h"
#include "packet_sender.h"
@@ -91,18 +96,22 @@ uint32_t IEEE802_3::header_size() const {
void IEEE802_3::send(PacketSender &sender) {
if(!_iface)
throw std::runtime_error("Interface has not been set");
struct sockaddr_ll addr;
#ifndef BSD
struct sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
memset(&addr, 0, sizeof(struct sockaddr_ll));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, sizeof(_eth.dst_mac));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, sizeof(_eth.dst_mac));
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
#else
sender.send_l2(*this, 0, 0);
#endif
}
#endif // WIN32
@@ -132,16 +141,20 @@ void IEEE802_3::write_serialization(uint8_t *buffer, uint32_t total_sz, const PD
#ifndef WIN32
PDU *IEEE802_3::recv_response(PacketSender &sender) {
struct sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
#ifndef BSD
struct sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_802_3);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, sizeof(_eth.dst_mac));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_802_3);
addr.sll_halen = address_type::address_size;
addr.sll_ifindex = _iface.id();
memcpy(&(addr.sll_addr), _eth.dst_mac, sizeof(_eth.dst_mac));
return sender.recv_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
return sender.recv_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
#else
return sender.recv_l2(*this, 0, 0);
#endif
}
#endif // WIN32

View File

@@ -34,6 +34,7 @@
#ifndef WIN32
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#else
#include <winsock2.h>
#endif
@@ -168,7 +169,12 @@ void IP::tos(uint8_t new_tos) {
}
void IP::tot_len(uint16_t new_tot_len) {
// BSD wants this in host byte order............
#ifdef BSD
_ip.tot_len = new_tot_len;
#else
_ip.tot_len = Endian::host_to_be(new_tot_len);
#endif
}
void IP::id(uint16_t new_id) {

View File

@@ -28,8 +28,12 @@
*/
#include <algorithm>
#include "arch.h"
#ifndef WIN32
#include <arpa/inet.h>
#ifdef BSD
#include <sys/socket.h>
#endif
#endif
#include <limits>
#include <iostream> // borrame

View File

@@ -36,8 +36,14 @@
#include "packet_sender.h"
#include "ip.h"
#include "llc.h"
#include "arch.h"
#include "rawpdu.h"
#if defined(BSD) && !defined(PF_LLC)
// compilation fix, check if it works xD
#define PF_LLC 26
#endif
namespace Tins {
Loopback::Loopback()
: _family()

View File

@@ -30,10 +30,17 @@
#include <stdexcept>
#include <vector>
#include <cstring>
#include "arch.h"
#ifndef WIN32
#include <linux/if_packet.h>
#include <net/if.h>
#include <netinet/in.h>
#ifdef BSD
#include <ifaddrs.h>
#include <net/if_dl.h>
#include <sys/socket.h>
#else
#include <linux/if_packet.h>
#endif
#include <net/if.h>
#else
#include <winsock2.h>
#endif
@@ -55,21 +62,38 @@ struct InterfaceInfoCollector {
#ifndef WIN32
bool operator() (const struct ifaddrs *addr) {
using Tins::Endian::host_to_be;
using Tins::IPv4Address;
const struct sockaddr_ll* addr_ptr = ((struct sockaddr_ll*)addr->ifa_addr);
if(addr->ifa_addr->sa_family == AF_PACKET && addr_ptr->sll_ifindex == iface_id)
info->hw_addr = addr_ptr->sll_addr;
else if(addr->ifa_addr->sa_family == AF_INET && !std::strcmp(addr->ifa_name, iface_name)) {
info->ip_addr = IPv4Address(((struct sockaddr_in *)addr->ifa_addr)->sin_addr.s_addr);
info->netmask = IPv4Address(((struct sockaddr_in *)addr->ifa_netmask)->sin_addr.s_addr);
if((addr->ifa_flags & (IFF_BROADCAST | IFF_POINTOPOINT)))
info->bcast_addr = IPv4Address(((struct sockaddr_in *)addr->ifa_ifu.ifu_broadaddr)->sin_addr.s_addr);
else
info->bcast_addr = 0;
found = true;
}
return found;
using Tins::IPv4Address;
#ifdef BSD
const struct sockaddr_dl* addr_ptr = ((struct sockaddr_dl*)addr->ifa_addr);
if(addr->ifa_addr->sa_family == AF_LINK && addr_ptr->sdl_index == iface_id)
info->hw_addr = (const uint8_t*)LLADDR(addr_ptr); // mmmm
else if(addr->ifa_addr->sa_family == AF_INET && !std::strcmp(addr->ifa_name, iface_name)) {
info->ip_addr = IPv4Address(((struct sockaddr_in *)addr->ifa_addr)->sin_addr.s_addr);
info->netmask = IPv4Address(((struct sockaddr_in *)addr->ifa_netmask)->sin_addr.s_addr);
if((addr->ifa_flags & (IFF_BROADCAST | IFF_POINTOPOINT)))
info->bcast_addr = IPv4Address(((struct sockaddr_in *)addr->ifa_dstaddr)->sin_addr.s_addr);
else
info->bcast_addr = 0;
found = true;
}
return found;
#else
const struct sockaddr_ll* addr_ptr = ((struct sockaddr_ll*)addr->ifa_addr);
if(addr->ifa_addr->sa_family == AF_PACKET && addr_ptr->sll_ifindex == iface_id)
info->hw_addr = addr_ptr->sll_addr;
else if(addr->ifa_addr->sa_family == AF_INET && !std::strcmp(addr->ifa_name, iface_name)) {
info->ip_addr = IPv4Address(((struct sockaddr_in *)addr->ifa_addr)->sin_addr.s_addr);
info->netmask = IPv4Address(((struct sockaddr_in *)addr->ifa_netmask)->sin_addr.s_addr);
if((addr->ifa_flags & (IFF_BROADCAST | IFF_POINTOPOINT)))
info->bcast_addr = IPv4Address(((struct sockaddr_in *)addr->ifa_ifu.ifu_broadaddr)->sin_addr.s_addr);
else
info->bcast_addr = 0;
found = true;
}
return found;
#endif
}
#else // WIN32
bool operator() (const IP_ADAPTER_ADDRESSES *iface) {
@@ -116,7 +140,11 @@ NetworkInterface::NetworkInterface(IPv4Address ip) : iface_id(0) {
typedef std::vector<Utils::RouteEntry> entries_type;
if(ip == "127.0.0.1")
#ifdef BSD
iface_id = resolve_index("lo0");
#else
iface_id = resolve_index("lo");
#endif
else {
Utils::RouteEntry *best_match = 0;
entries_type entries;

View File

@@ -33,8 +33,18 @@
#include <sys/time.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <linux/if_ether.h>
#include <linux/if_packet.h>
#include "arch.h"
#ifdef BSD
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <net/if.h>
#include <net/bpf.h>
#else
#include <linux/if_ether.h>
#include <linux/if_packet.h>
#endif
#include <netdb.h>
#include <netinet/in.h>
#include <errno.h>
@@ -46,7 +56,9 @@
#include <cstring>
#include <ctime>
#include "pdu.h"
#include "arch.h"
#include "packet_sender.h"
#include "network_interface.h"
namespace Tins {
@@ -61,8 +73,8 @@ const uint32_t PacketSender::DEFAULT_TIMEOUT = 2;
#endif
PacketSender::PacketSender(uint32_t recv_timeout, uint32_t usec) :
_sockets(SOCKETS_END, INVALID_RAW_SOCKET), _timeout(recv_timeout),
PacketSender::PacketSender(uint32_t recv_timeout, uint32_t usec)
: _sockets(SOCKETS_END, INVALID_RAW_SOCKET), _timeout(recv_timeout),
_timeout_usec(usec)
{
_types[IP_SOCKET] = IPPROTO_RAW;
@@ -81,9 +93,14 @@ PacketSender::~PacketSender() {
}
#ifndef WIN32
void PacketSender::open_l2_socket() {
void PacketSender::open_l2_socket(const NetworkInterface& iface) {
if (_sockets[ETHER_SOCKET] == INVALID_RAW_SOCKET) {
int sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
int sock;
#ifdef BSD
// FIXME
#else
sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
#endif
if (sock == -1)
throw SocketOpenError(make_error_string());
_sockets[ETHER_SOCKET] = sock;
@@ -145,7 +162,11 @@ void PacketSender::send_l2(PDU &pdu, struct sockaddr* link_addr, uint32_t len_ad
int sock = _sockets[ETHER_SOCKET];
PDU::serialization_type buffer = pdu.serialize();
if(!buffer.empty()) {
#ifdef BSD
if(write(sock, &buffer[0], buffer.size()) == -1)
#else
if(sendto(sock, &buffer[0], buffer.size(), 0, link_addr, len_addr) == -1)
#endif
throw SocketWriteError(make_error_string());
}
}

View File

@@ -30,9 +30,14 @@
#include <cstring>
#include <cassert>
#include <stdexcept>
#include "arch.h"
#ifndef WIN32
#ifdef BSD
#include <net/if_dl.h>
#else
#include <netpacket/packet.h>
#endif
#include <net/ethernet.h>
#include <netpacket/packet.h>
#endif
#include "radiotap.h"
#include "dot11.h"
@@ -226,22 +231,26 @@ void RadioTap::send(PacketSender &sender) {
if(!_iface)
throw std::runtime_error("Interface has not been set");
struct sockaddr_ll addr;
#ifndef BSD
struct sockaddr_ll addr;
memset(&addr, 0, sizeof(struct sockaddr_ll));
memset(&addr, 0, sizeof(struct sockaddr_ll));
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = 6;
addr.sll_ifindex = _iface.id();
Tins::Dot11 *wlan = dynamic_cast<Tins::Dot11*>(inner_pdu());
if(wlan) {
Tins::Dot11::address_type dot11_addr(wlan->addr1());
std::copy(dot11_addr.begin(), dot11_addr.end(), addr.sll_addr);
}
addr.sll_family = Endian::host_to_be<uint16_t>(PF_PACKET);
addr.sll_protocol = Endian::host_to_be<uint16_t>(ETH_P_ALL);
addr.sll_halen = 6;
addr.sll_ifindex = _iface.id();
Tins::Dot11 *wlan = dynamic_cast<Tins::Dot11*>(inner_pdu());
if(wlan) {
Tins::Dot11::address_type dot11_addr(wlan->addr1());
std::copy(dot11_addr.begin(), dot11_addr.end(), addr.sll_addr);
}
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
sender.send_l2(*this, (struct sockaddr*)&addr, (uint32_t)sizeof(addr));
#else
sender.send_l2(*this, 0, 0);
#endif
}
void RadioTap::write_serialization(uint8_t *buffer, uint32_t total_sz, const PDU *parent) {

View File

@@ -32,9 +32,16 @@
#include <memory>
#include <cassert>
#include <cstring>
#include "arch.h"
#ifndef WIN32
#ifdef BSD
#include <sys/socket.h>
#include <netinet/in.h>
#include <net/if_dl.h>
#else
#include <netpacket/packet.h>
#endif
#include <netdb.h>
#include <linux/if_packet.h>
#include <net/if.h>
#endif
#include "utils.h"

View File

@@ -36,7 +36,7 @@ void test_equals(const Dot11ProbeResponse &dot1, const Dot11ProbeResponse &dot2)
void test_equals_expected(const Dot11ProbeResponse &dot11) {
test_equals_expected(static_cast<const Dot11ManagementFrame&>(dot11));
EXPECT_EQ(dot11.timestamp(), 0x17a698df27838a91);
EXPECT_EQ(dot11.timestamp(), 0x17a698df27838a91LL);
EXPECT_EQ(dot11.interval(), 0x928d);
EXPECT_EQ(dot11.subtype(), Dot11::PROBE_RESP);
}
@@ -75,8 +75,8 @@ TEST_F(Dot11ProbeResponseTest, Interval) {
TEST_F(Dot11ProbeResponseTest, Timestamp) {
Dot11ProbeResponse dot11;
dot11.timestamp(0x92af8a72df928a7c);
EXPECT_EQ(dot11.timestamp(), 0x92af8a72df928a7c);
dot11.timestamp(0x92af8a72df928a7cLL);
EXPECT_EQ(dot11.timestamp(), 0x92af8a72df928a7cLL);
}
TEST_F(Dot11ProbeResponseTest, ClonePDU) {

View File

@@ -2,6 +2,7 @@
#include <gtest/gtest.h>
#include "ethernetII.h"
#include "utils.h"
#include "arch.h"
#include "network_interface.h"
using namespace Tins;
@@ -33,7 +34,11 @@ address_type EthernetIITest::d_addr("aa:bb:cc:dd:ee:ff");
address_type EthernetIITest::empty_addr;
#ifdef BSD
const NetworkInterface EthernetIITest::iface("lo0");
#else
const NetworkInterface EthernetIITest::iface("lo");
#endif
const uint16_t EthernetIITest::p_type = 0xd0ab;

View File

@@ -29,8 +29,6 @@ TEST_F(ICMPTest, DefaultConstructor) {
EXPECT_EQ(icmp.type(), ICMP::ECHO_REQUEST);
EXPECT_EQ(icmp.id(), 0);
EXPECT_EQ(icmp.check(), 0);
EXPECT_EQ(icmp.gateway(), 0);
EXPECT_EQ(icmp.mtu(), 0);
}
TEST_F(ICMPTest, CopyConstructor) {

View File

@@ -2,6 +2,7 @@
#include <string>
#include "network_interface.h"
#include "utils.h"
#include "arch.h"
using namespace Tins;
@@ -10,9 +11,13 @@ public:
static const std::string iface_name, iface_addr;
};
#ifdef BSD
const std::string NetworkInterfaceTest::iface_name("lo0"),
NetworkInterfaceTest::iface_addr("");
#else
const std::string NetworkInterfaceTest::iface_name("lo"),
NetworkInterfaceTest::iface_addr("");
#endif
TEST_F(NetworkInterfaceTest, ConstructorFromString) {
// just test this doesn't throw
@@ -29,7 +34,7 @@ TEST_F(NetworkInterfaceTest, ConstructorFromString) {
TEST_F(NetworkInterfaceTest, ConstructorFromIp) {
NetworkInterface iface(IPv4Address("127.0.0.1"));
EXPECT_EQ(iface.name(), "lo");
EXPECT_EQ(iface.name(), iface_name);
}
TEST_F(NetworkInterfaceTest, Id) {
@@ -51,7 +56,7 @@ TEST_F(NetworkInterfaceTest, EqualsOperator) {
}
TEST_F(NetworkInterfaceTest, DistinctOperator) {
NetworkInterface iface1(iface_name), iface2("eth0");
NetworkInterface iface1(iface_name), iface2;
EXPECT_NE(iface1, iface2);
}

View File

@@ -58,14 +58,14 @@ const uint8_t UtilsTest::data[] = {
};
const uint32_t UtilsTest::data_len = 500;
TEST_F(UtilsTest, ResolveIp) {
/*TEST_F(UtilsTest, ResolveIp) {
IPv4Address localhost_ip("127.0.0.1");
EXPECT_EQ(Utils::resolve_ip("localhost"), localhost_ip);
EXPECT_THROW(Utils::resolve_ip("www.qwertyuiopasdfg.com.ar.edu.gov"), std::runtime_error);
}
*/
TEST_F(UtilsTest, Crc32) {
uint32_t crc = Utils::crc32(data, data_len);