X-Git-Url: http://git.osdn.net/view?p=android-x86%2Fexternal-wireless-tools.git;a=blobdiff_plain;f=wireless_tools%2Fmacaddr.c;h=5950fd9eb840d35aec75c2ca95083f4e1e46ae05;hp=8c5a93a299f5256d9afac49d06ae16aea794da4d;hb=92c266503ddec9d3bd219978c118a77a46dc12d4;hpb=fb1188c580d9ff90cc4d80d2bedb03e86b463057 diff --git a/wireless_tools/macaddr.c b/wireless_tools/macaddr.c index 8c5a93a..5950fd9 100644 --- a/wireless_tools/macaddr.c +++ b/wireless_tools/macaddr.c @@ -11,43 +11,43 @@ * This is released unther the GPL license. */ +#include +#include +#include +#include #include #include #include -#include -#include -#include -int main(int argc, char** argv) { +#include "iwlib.h" + +int main(int argc, char** argv) +{ int devsock; struct ifreq ifbuffer; - int i; - if (argc != 2) { + if ((argc != 2) || (argv[1][0] == '-')) { printf("Usage: macaddr interface\n"); exit(1); } - devsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + devsock = socket(AF_INET, SOCK_STREAM, 0); if (devsock == -1) { - printf("Failed opening socket\n"); + perror("Failed opening socket"); exit (1); } memset(&ifbuffer, 0, sizeof(ifbuffer)); - strcpy(ifbuffer.ifr_name, argv[1]); + strncpy(ifbuffer.ifr_name, argv[1], sizeof(ifbuffer.ifr_name)); if (ioctl(devsock, SIOCGIFHWADDR, &ifbuffer) == -1) { - printf("There is no MACADDR for %s\n", argv[1]); + fprintf(stderr, "There is no MACADDR for %s\n", argv[1]); exit(1); } - close (devsock); + close(devsock); - for (i = 0; i < IFHWADDRLEN; i++) - printf("%02X", (unsigned char) ifbuffer.ifr_ifru.ifru_hwaddr.sa_data[i]); - printf("\n"); + puts(iw_ether_ntoa((struct ether_addr *) ifbuffer.ifr_ifru.ifru_hwaddr.sa_data)); exit(0); - }