diff packages/redboot/current/src/net/bootp.c @ 165:d63db767121d

Merge from eCos master repository on 2001-06-29-06:43:03-BST
author jlarmour
date Fri, 29 Jun 2001 07:16:25 +0000
parents b939e9cada46
children 022f1e506033
line wrap: on
line diff
--- a/packages/redboot/current/src/net/bootp.c
+++ b/packages/redboot/current/src/net/bootp.c
@@ -87,6 +87,7 @@ int
     ip_route_t     r;
     int            retry;
     unsigned long  start;
+    ip_addr_t saved_ip_addr;
 
     bp_info = info;
 
@@ -97,10 +98,8 @@ int
     b.bp_hlen = 6;
     b.bp_xid = SHOULD_BE_RANDOM;
 
-    __local_ip_addr[0] = 0;
-    __local_ip_addr[1] = 0;
-    __local_ip_addr[2] = 0;
-    __local_ip_addr[3] = 0;
+    memcpy( saved_ip_addr, __local_ip_addr, sizeof(__local_ip_addr) );
+    memset( __local_ip_addr, 0, sizeof(__local_ip_addr) );
 
     memcpy(b.bp_chaddr, __local_enet_addr, 6);
 
@@ -139,6 +138,7 @@ int
     /* timed out */
     __udp_remove_listener(IPPORT_BOOTPC);
     net_debug = 0;
+    memcpy( __local_ip_addr, saved_ip_addr, sizeof(__local_ip_addr) );
     return -1;
 }