fix calc of arp hash value
This commit is contained in:
@@ -20,6 +20,7 @@ namespace TestIp6ToIp4PacketHandler
|
||||
{
|
||||
REQUIRE(currentInputPdu != nullptr);
|
||||
REQUIRE(answerPdu.find_pdu<Tins::IPv6>() == nullptr);
|
||||
REQUIRE(answerPdu.find_pdu<Tins::TCP>() != nullptr);
|
||||
|
||||
const Tins::IP * ip = answerPdu.find_pdu<Tins::IP>();
|
||||
REQUIRE(ip != nullptr);
|
||||
@@ -51,7 +52,8 @@ TEST_CASE( "test Ip6ToIp4PacketHandler", "[Ip6ToIp4PacketHandler]" ) {
|
||||
return true;
|
||||
});
|
||||
|
||||
Tins::EthernetII pkt = Tins::EthernetII() / Tins::IPv6() / Tins::TCP();
|
||||
Tins::IPv6 tmpPkt = Tins::IPv6() / Tins::TCP();
|
||||
Tins::EthernetII pkt = Tins::EthernetII() / tmpPkt;
|
||||
TestIp6ToIp4PacketHandler::currentInputPdu = &pkt;
|
||||
REQUIRE(handler.handle(pkt, nullptr) == false);
|
||||
REQUIRE(handler.handle(pkt, &mockHandler.get()) == true);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#include "fakeit.hpp"
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
#include "tins/ethernetII.h"
|
||||
#include <tins/arp.h>
|
||||
#include <tins/ethernetII.h>
|
||||
#include <tins/ip.h>
|
||||
#include <tins/ipv6.h>
|
||||
#include <tins/ip_address.h>
|
||||
@@ -27,6 +28,15 @@ namespace TestTinsNetworkInterfaceCard
|
||||
if(ip1 != nullptr && (ip1->dst_addr() == ip2->dst_addr()))
|
||||
{
|
||||
foundPduCount++;
|
||||
return true;
|
||||
}
|
||||
|
||||
const Tins::ARP * arp1 = pdu.find_pdu<Tins::ARP>();
|
||||
const Tins::ARP * arp2 = currentInputPdu->find_pdu<Tins::ARP>();
|
||||
if(arp1 != nullptr && (arp1->target_ip_addr() == arp2->target_ip_addr()))
|
||||
{
|
||||
foundPduCount++;
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -43,7 +53,7 @@ TEST_CASE( "test send and receive Packet", "[TinsNetworkInterfaceCard_SendRec]"
|
||||
Mock<IPacketHandler> mockHandler(*sptrMockHandler);
|
||||
TestTinsNetworkInterfaceCard::foundPduCount = 0;
|
||||
ptrPacketSniffer->getHandlerList().push_back(sptrMockHandler);
|
||||
Tins::EthernetII pkt = Tins::EthernetII("11:22:33:44:55:66", "66:55:44:33:22:11") / Tins::IP("1.2.3.4", "4.3.2.1") / Tins::TCP();
|
||||
Tins::EthernetII pkt = Tins::EthernetII("11:22:33:44:55:66", "66:55:44:33:22:11") / Tins::IP("1.2.3.4", "4.3.2.1") / Tins::TCP();
|
||||
TestTinsNetworkInterfaceCard::currentInputPdu = &pkt;
|
||||
std::thread sniffThread(&TinsNetworkInterfaceCard::startListen, ptrPacketSniffer.get());
|
||||
std::this_thread::sleep_for(std::chrono::seconds(2));
|
||||
@@ -80,4 +90,15 @@ TEST_CASE( "test send and receive Packet", "[TinsNetworkInterfaceCard_SendRec]"
|
||||
ptrPacketSniffer->stopListen();
|
||||
sniffThread3.join();
|
||||
REQUIRE(TestTinsNetworkInterfaceCard::foundPduCount == 4);
|
||||
|
||||
pkt = Tins::ARP::make_arp_request("1.2.3.4", "4.3.2.1", "11:22:33:44:55:66");
|
||||
std::thread sniffThread4(&TinsNetworkInterfaceCard::startListen, ptrPacketSniffer.get());
|
||||
std::this_thread::sleep_for(std::chrono::seconds(2));
|
||||
ptrPacketSniffer->sendPacket(pkt);
|
||||
ptrPacketSender->sendPacket(pkt);
|
||||
ptrPacketSniffer->sendPacket(pkt);
|
||||
std::this_thread::sleep_for(std::chrono::seconds(2));
|
||||
ptrPacketSniffer->stopListen();
|
||||
sniffThread4.join();
|
||||
REQUIRE(TestTinsNetworkInterfaceCard::foundPduCount == 5);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user