From b0213b1dd48d05d986463195b587692224217ddb Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" <w.terpstra@gsi.de> Date: Wed, 4 Jul 2012 11:26:12 +0200 Subject: [PATCH] Don't cache the MAC address; it can be changed from shell. --- lib/arp.c | 2 +- lib/icmp.c | 2 +- lib/ipv4.c | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/arp.c b/lib/arp.c index efb57991e..5593ffe3b 100644 --- a/lib/arp.c +++ b/lib/arp.c @@ -58,7 +58,7 @@ static int process_arp(uint8_t* buf, int len) { buf[ARP_OPER+0] = 0; buf[ARP_OPER+1] = 2; // my MAC+IP - memcpy(buf+ARP_SHA, myMAC, 6); + get_mac_addr(buf+ARP_SHA); memcpy(buf+ARP_SPA, myIP, 4); // his MAC+IP memcpy(buf+ARP_THA, hisMAC, 6); diff --git a/lib/icmp.c b/lib/icmp.c index a5bf4189d..d26547033 100644 --- a/lib/icmp.c +++ b/lib/icmp.c @@ -28,7 +28,7 @@ void icmp_init(const char* if_name) { /* Configure socket filter */ memset(&saddr, 0, sizeof(saddr)); strcpy(saddr.if_name, if_name); - memcpy(&saddr.mac, myMAC, 6); /* Unicast */ + get_mac_addr(&saddr.mac); /* Unicast */ saddr.ethertype = htons(0x0800); /* IPv4 */ saddr.family = PTPD_SOCK_RAW_ETHERNET; diff --git a/lib/ipv4.c b/lib/ipv4.c index 1a52db336..4575115eb 100644 --- a/lib/ipv4.c +++ b/lib/ipv4.c @@ -3,7 +3,6 @@ #include "endpoint.h" #include "ipv4.h" -uint8_t myMAC[6]; uint8_t myIP[4]; unsigned int ipv4_checksum(unsigned short* buf, int shorts) { @@ -25,7 +24,6 @@ void ipv4_init(const char* if_name, uint32_t ip) { ip_bigendian = htonl(ip); memcpy(myIP, &ip_bigendian, 4); - get_mac_addr(myMAC); arp_init(if_name); icmp_init(if_name); -- GitLab