X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FIPStack%2Farp.c;h=cedc0b31eb5bdc9c02b5eff75c1d83049bf678a6;hb=4b1fffae7ad45b1d973b088e919c53ef0880f190;hp=2b246cd53bcf62587e3d1a875be7a8617b0fe946;hpb=b3fa9a08edcbc459bd8e9df73186e292470ebfc3;p=tpg%2Facess2.git diff --git a/Modules/IPStack/arp.c b/Modules/IPStack/arp.c index 2b246cd5..cedc0b31 100644 --- a/Modules/IPStack/arp.c +++ b/Modules/IPStack/arp.c @@ -90,10 +90,10 @@ tMacAddr ARP_Resolve4(tInterface *Interface, tIPv4 Address) lastID = giARP_LastUpdateID; // Create request - Log("[ARP4 ] Asking for address %i.%i.%i.%i", + Log_Log("ARP4", "Asking for address %i.%i.%i.%i", Address.B[0], Address.B[1], Address.B[2], Address.B[3] ); - req.HWType = htons(1); // Ethernet + req.HWType = htons(0x0001); // Ethernet req.Type = htons(0x0800); req.HWSize = 6; req.SWSize = 4; @@ -152,8 +152,15 @@ void ARP_UpdateCache4(tIPv4 SWAddr, tMacAddr HWAddr) gaARP_Cache4[i].IP = SWAddr; } + Log_Log("ARP4", "Caching %i.%i.%i.%i (%02x:%02x:%02x:%02x:%02x:%02x) in %i", + SWAddr.B[0], SWAddr.B[1], SWAddr.B[2], SWAddr.B[3], + HWAddr.B[0], HWAddr.B[1], HWAddr.B[2], HWAddr.B[3], HWAddr.B[4], HWAddr.B[5], + i + ); + gaARP_Cache4[i].MAC = HWAddr; gaARP_Cache4[i].LastUpdate = now(); + giARP_LastUpdateID ++; RELEASE(&glARP_Cache4); } @@ -187,6 +194,7 @@ void ARP_UpdateCache6(tIPv6 SWAddr, tMacAddr HWAddr) gaARP_Cache6[i].IP = SWAddr; gaARP_Cache6[i].LastUpdate = now(); + giARP_LastUpdateID ++; RELEASE(&glARP_Cache6); } @@ -202,19 +210,25 @@ void ARP_int_GetPacket(tAdapter *Adapter, tMacAddr From, int Length, void *Buffe // Sanity Check Packet if( Length < sizeof(tArpRequest4) ) { - Log("[ARP ] Recieved undersized packet"); + Log_Log("ARP", "Recieved undersized packet"); return ; } if( ntohs(req4->Type) != 0x0800 ) { - Log("[ARP ] Recieved a packet with a bad type 0x%x", ntohs(req4->Type)); + Log_Log("ARP", "Recieved a packet with a bad type 0x%x", ntohs(req4->Type)); return ; } if( req4->HWSize != 6 ) { - Log("[ARP ] Recieved a packet with HWSize != 6 (%i)", req4->HWSize); + Log_Log("ARP", "Recieved a packet with HWSize != 6 (%i)", req4->HWSize); return; } if( !MAC_EQU(req4->SourceMac, From) ) { - Log("[ARP ] ARP spoofing detected", req4->HWSize); + Log_Log("ARP", "ARP spoofing detected " + "(%02x%02x:%02x%02x:%02x%02x != %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], + From.B[0], From.B[1], From.B[2], + From.B[3], From.B[4], From.B[5] + ); return; } @@ -304,5 +318,9 @@ void ARP_int_GetPacket(tAdapter *Adapter, tMacAddr From, int Length, void *Buffe } break; + + default: + Warning("[ARP ] Unknown Request ID %i", ntohs(req4->Request)); + break; } }