diff options
author | Felix Fietkau <nbd@openwrt.org> | 2006-10-15 17:52:08 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2006-10-15 17:52:08 +0000 |
commit | a99fbdf958b8949604e57820c53a9fed62b339d8 (patch) | |
tree | f6b7e6a558ac47311195865e44d7e5b784d4c216 /package/broadcom-wl/src/wlc | |
parent | d1284273f48e2c465d1027f92abb77d0be274ee8 (diff) | |
download | upstream-a99fbdf958b8949604e57820c53a9fed62b339d8.tar.gz upstream-a99fbdf958b8949604e57820c53a9fed62b339d8.tar.bz2 upstream-a99fbdf958b8949604e57820c53a9fed62b339d8.zip |
wlc: use custom ether_ntoa implementation that pads the address parts
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5124 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/broadcom-wl/src/wlc')
-rw-r--r-- | package/broadcom-wl/src/wlc/wlc.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/package/broadcom-wl/src/wlc/wlc.c b/package/broadcom-wl/src/wlc/wlc.c index 2d6b846a09..ea56c1a040 100644 --- a/package/broadcom-wl/src/wlc/wlc.c +++ b/package/broadcom-wl/src/wlc/wlc.c @@ -92,7 +92,11 @@ struct wlc_call { /* can't use the system include because of the stupid broadcom header files */ extern struct ether_addr *ether_aton(const char *asc); -extern char *ether_ntoa(const struct ether_addr *addr); +static inline int my_ether_ntoa(unsigned char *ea, char *buf) +{ + return sprintf(buf, "%02x:%02x:%02x:%02x:%02x:%02x", + ea[0], ea[1], ea[2], ea[3], ea[4], ea[5]); +} /* * find the starting point of wl.o in memory @@ -476,8 +480,10 @@ static int wlc_maclist(wlc_param param, void *data, void *value) ret = wl_ioctl(interface, (ioc >> 16) & 0xffff, wlbuf, sizeof(wlbuf)); if (!ret) - while (list->count) - str += sprintf(str, "%s%s", ((((char *) value) == str) ? "" : " "), ether_ntoa(&list->ea[list->count-- - 1])); + while (list->count) { + str += sprintf(str, "%s", ((((char *) value) == str) ? "" : " ")); + str += my_ether_ntoa((unsigned char *) &list->ea[list->count-- - 1], str); + } return ret; } else { @@ -663,13 +669,12 @@ static int wlc_ifname(wlc_param param, void *data, void *value) static int wlc_wdsmac(wlc_param param, void *data, void *value) { - static struct ether_addr mac; + unsigned char mac[6]; int ret = 0; ret = wl_ioctl(interface, WLC_WDS_GET_REMOTE_HWADDR, &mac, 6); - if (ret == 0) { - strcpy((char *) value, ether_ntoa(&mac)); - } + if (ret == 0) + my_ether_ntoa(mac, value); return ret; } |