udhcp: handle errors in read_staticlease

also gets rid of ether-aton's static buffer in ether-wake:
   text   data    bss    dec    hexfilename
 838664    441   7572 846677  ceb55busybox_old
 838650    441   7564 846655  ceb3fbusybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2010-03-23 15:43:08 +01:00
parent 30ebd7bd78
commit 37a658c4c8
5 changed files with 18 additions and 20 deletions

View File

@@ -111,10 +111,9 @@ static void get_dest_addr(const char *hostid, struct ether_addr *eaddr)
{
struct ether_addr *eap;
eap = ether_aton(hostid);
eap = ether_aton_r(hostid, eaddr);
if (eap) {
*eaddr = *eap;
bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eaddr));
bb_debug_msg("The target station address is %s\n\n", ether_ntoa(eap));
#if !defined(__UCLIBC_MAJOR__) \
|| __UCLIBC_MAJOR__ > 0 \
|| __UCLIBC_MINOR__ > 9 \
@@ -122,8 +121,9 @@ static void get_dest_addr(const char *hostid, struct ether_addr *eaddr)
} else if (ether_hostton(hostid, eaddr) == 0) {
bb_debug_msg("Station address for hostname %s is %s\n\n", hostid, ether_ntoa(eaddr));
#endif
} else
} else {
bb_show_usage();
}
}
static int get_fill(unsigned char *pkt, struct ether_addr *eaddr, int broadcast)