X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FIPStack%2Fipv4.c;h=9723d8d7fb8f4efb040e8b0d5ba9a8c8347db743;hb=04b368645c34cc3853fc13f93e33ac7878be8479;hp=d57b124dd55aa09a16dab251bdeddc7a175a94fc;hpb=6c5a509b5e14e097ca537c539bc9babe3b8f0c4c;p=tpg%2Facess2.git diff --git a/Modules/IPStack/ipv4.c b/Modules/IPStack/ipv4.c index d57b124d..9723d8d7 100644 --- a/Modules/IPStack/ipv4.c +++ b/Modules/IPStack/ipv4.c @@ -6,6 +6,9 @@ #include "link.h" #include "ipv4.h" +// === IMPORTS === +extern tInterface *gIP_Interfaces; + // === PROTOTYPES === int IPv4_Initialise(); void IPv4_int_GetPacket(tAdapter *Interface, tMacAddr From, int Length, void *Buffer); @@ -33,7 +36,7 @@ void IPv4_int_GetPacket(tAdapter *Adapter, tMacAddr From, int Length, void *Buff { tIPv4Header *hdr = Buffer; tInterface *iface; - char *data; + Uint8 *data; int dataLength; if(Length < sizeof(tIPv4Header)) return; @@ -69,8 +72,9 @@ tInterface *IPv4_GetInterface(tAdapter *Adapter, tIPv4 Address, int Broadcast) tInterface *iface = NULL; Uint32 netmask; - for( iface = Adapter->Interfaces; iface; iface = iface->Next) + for( iface = gIP_Interfaces; iface; iface = iface->Next) { + if( iface->Adapter != Adapter ) continue; if( iface->Type != 4 ) continue; if( IP4_EQU(Address, iface->IP4.Address) ) return iface;