X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FIPStack%2Farp.c;h=2ee4fac68a322a3dd43c3e1cbfa739ee4e931f68;hb=0f48b41ce8edd3b6d549d641b35901e4b51a5132;hp=cc194e90806849560fb0d01c44a42e15de8540b5;hpb=6c5a509b5e14e097ca537c539bc9babe3b8f0c4c;p=tpg%2Facess2.git diff --git a/Modules/IPStack/arp.c b/Modules/IPStack/arp.c index cc194e90..2ee4fac6 100644 --- a/Modules/IPStack/arp.c +++ b/Modules/IPStack/arp.c @@ -95,21 +95,43 @@ void ARP_int_GetPacket(tAdapter *Adapter, tMacAddr From, int Length, void *Buffe return; } - switch( req4->Request ) + Log("[ARP ] Request ID %i", ntohs(req4->Request)); + + switch( ntohs(req4->Request) ) { case 1: // You want my IP? + Log("[ARP ] ARP Request Address class %i", req4->SWSize); // Check what type of IP it is switch( req4->SWSize ) { case 4: + Log("[ARP ] From MAC %02x:%02x:%02x:%02x:%02x:%02x", + req4->SourceMac.B[0], req4->SourceMac.B[1], + req4->SourceMac.B[2], req4->SourceMac.B[3], + req4->SourceMac.B[4], req4->SourceMac.B[5]); + Log("[ARP ] to MAC %02x:%02x:%02x:%02x:%02x:%02x", + req4->DestMac.B[0], req4->DestMac.B[1], + req4->DestMac.B[2], req4->DestMac.B[3], + req4->DestMac.B[4], req4->DestMac.B[5]); + Log("[ARP ] ARP Request IPv4 Address %i.%i.%i.%i", + req4->DestIP.B[0], req4->DestIP.B[1], req4->DestIP.B[2], + req4->DestIP.B[3]); + Log("[ARP ] from %i.%i.%i.%i", + req4->SourceIP.B[0], req4->SourceIP.B[1], + req4->SourceIP.B[2], req4->SourceIP.B[3]); iface = IPv4_GetInterface(Adapter, req4->DestIP, 0); if( iface ) { - IP4_SET(req4->DestIP, req4->SourceIP); + req4->DestIP = req4->SourceIP; req4->DestMac = req4->SourceMac; req4->SourceIP = iface->IP4.Address; req4->SourceMac = Adapter->MacAddr; req4->Request = htons(2); + Log("[ARP ] Hey, That's us!"); + Log("[ARP ] Sending back %02x:%02x:%02x:%02x:%02x:%02x", + req4->SourceMac.B[0], req4->SourceMac.B[1], + req4->SourceMac.B[2], req4->SourceMac.B[3], + req4->SourceMac.B[4], req4->SourceMac.B[5]); Link_SendPacket(Adapter, 0x0806, req4->DestMac, sizeof(tArpRequest4), req4); } break;