Added a uip_setethaddr() macro for setting the MAC address used by the ARP module
diff --git a/contiki/uip/uip_arp.c b/contiki/uip/uip_arp.c
index 106bd12..83cc7db 100644
--- a/contiki/uip/uip_arp.c
+++ b/contiki/uip/uip_arp.c
@@ -31,7 +31,7 @@
  *
  * This file is part of the uIP TCP/IP stack.
  *
- * $Id: uip_arp.c,v 1.2 2003/03/28 12:11:18 adamdunkels Exp $
+ * $Id: uip_arp.c,v 1.3 2003/06/30 20:36:28 adamdunkels Exp $
  *
  */
 
@@ -79,12 +79,12 @@
   u8_t time;
 };
 
-static const struct uip_eth_addr ethaddr = {{UIP_ETHADDR0,
-					     UIP_ETHADDR1,
-					     UIP_ETHADDR2,
-					     UIP_ETHADDR3,
-					     UIP_ETHADDR4,
-					     UIP_ETHADDR5}};
+struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,
+				    UIP_ETHADDR1,
+				    UIP_ETHADDR2,
+				    UIP_ETHADDR3,
+				    UIP_ETHADDR4,
+				    UIP_ETHADDR5}};
 
 static struct arp_entry arp_table[UIP_ARPTAB_SIZE];
 static u16_t ipaddr[2];
@@ -233,7 +233,7 @@
       for(c = 0; c < 6; ++c) {
         BUF->dhwaddr.addr[c] = BUF->shwaddr.addr[c];
 	BUF->shwaddr.addr[c] = 
-	  BUF->ethhdr.src.addr[c] = ethaddr.addr[c];
+	  BUF->ethhdr.src.addr[c] = uip_ethaddr.addr[c];
 	BUF->ethhdr.dest.addr[c] = BUF->dhwaddr.addr[c];
       }
 
@@ -307,7 +307,7 @@
     for(c = 0; c < 6; ++c) {     
       BUF->ethhdr.dest.addr[c] = 0xff; /* Broadcast ARP request. */
       BUF->ethhdr.src.addr[c] = 
-	BUF->shwaddr.addr[c] = ethaddr.addr[c];
+	BUF->shwaddr.addr[c] = uip_ethaddr.addr[c];
       BUF->dhwaddr.addr[c] = 0;
     }
     
@@ -331,7 +331,7 @@
   /* Build an ethernet header. */
   for(c = 0; c < 6; ++c) {
     IPBUF->ethhdr.dest.addr[c] = arp_table[i].ethaddr.addr[c];
-    IPBUF->ethhdr.src.addr[c] = ethaddr.addr[c];
+    IPBUF->ethhdr.src.addr[c] = uip_ethaddr.addr[c];
   }
   IPBUF->ethhdr.type = HTONS(UIP_ETHTYPE_IP);
 
diff --git a/contiki/uip/uip_arp.h b/contiki/uip/uip_arp.h
index fd7955e..d3e9165 100644
--- a/contiki/uip/uip_arp.h
+++ b/contiki/uip/uip_arp.h
@@ -31,7 +31,7 @@
  *
  * This file is part of the uIP TCP/IP stack.
  *
- * $Id: uip_arp.h,v 1.2 2003/04/16 18:28:16 adamdunkels Exp $
+ * $Id: uip_arp.h,v 1.3 2003/06/30 20:36:28 adamdunkels Exp $
  *
  */
 
@@ -43,7 +43,9 @@
 struct uip_eth_addr {
   u8_t addr[6];
 };
-  
+
+extern struct uip_eth_addr uip_ethaddr;
+
 struct uip_eth_hdr {
   struct uip_eth_addr dest;
   struct uip_eth_addr src;
@@ -102,6 +104,14 @@
 #define uip_getnetmask(addr) do { addr[0] = uip_arp_netmask[0]; \
                                   addr[1] = uip_arp_netmask[1]; } while(0)
 
+#define uip_setethaddr(eaddr) do {uip_ethaddr.addr[0] = eaddr.addr[0]; \
+                              uip_ethaddr.addr[1] = eaddr.addr[1];\
+                              uip_ethaddr.addr[2] = eaddr.addr[2];\
+                              uip_ethaddr.addr[3] = eaddr.addr[3];\
+                              uip_ethaddr.addr[4] = eaddr.addr[4];\
+                              uip_ethaddr.addr[5] = eaddr.addr[5];} while(0)
+
+
 
 /* Internal variables that are set using the macros uip_setdraddr and
    uip_setnetmask. */