Auf Branch develop
zum Commit vorgemerkte Änderungen: geändert: src/AbstractRouter.h neue Datei: src/ArpToNdpPacketHandler.cpp neue Datei: src/ArpToNdpPacketHandler.h neue Datei: src/INetworkInterfaceCard_t.h neue Datei: src/Ip4Packet_t.h geändert: src/Ip6Packet_t.h neue Datei: src/IpVersionRouter.cpp neue Datei: src/IpVersionRouter.h
This commit is contained in:
35
src/IpVersionRouter.cpp
Normal file
35
src/IpVersionRouter.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "IpVersionRouter.h"
|
||||
#include <tins/arp.h>
|
||||
#include <tins/ip.h>
|
||||
#include <tins/ipv6.h>
|
||||
#include "INetworkInterfaceCard.h"
|
||||
IpVersionRouter::IpVersionRouter()
|
||||
{
|
||||
}
|
||||
|
||||
IpVersionRouter::~IpVersionRouter()
|
||||
{
|
||||
}
|
||||
|
||||
bool IpVersionRouter::handle(IN const Tins::PDU & pdu, IN IPacketHandler * /* callBackHandler*/)
|
||||
{
|
||||
const Tins::IPv6 * ipv6Pdu = pdu.find_pdu<Tins::IPv6>();
|
||||
if(ipv6Pdu != nullptr)
|
||||
{
|
||||
ipv6Card->sendPacket(pdu);
|
||||
return true;
|
||||
}
|
||||
|
||||
const Tins::IP * ipv4Pdu = pdu.find_pdu<Tins::IP>();
|
||||
if(ipv4Pdu == nullptr)
|
||||
{
|
||||
const Tins::ARP * arpPdu = pdu.find_pdu<Tins::ARP>();
|
||||
if(arpPdu == nullptr)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
ipv4Card->sendPacket(pdu);
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user