blob: 4a79f6115917f8e2a3bbd69ef895c3e5e62920ec [file] [log] [blame]
#include "iw.h"
int mac_addr_n2a(char *mac_addr, unsigned char *arg)
{
int i, l, blen;
l = 0;
for (i = 0; i < ETH_ALEN ; i++) {
if (i == 0) {
snprintf(mac_addr+l, blen, "%02x", arg[i]);
l += 2;
} else {
snprintf(mac_addr+l, blen, ":%02x", arg[i]);
l += 3;
}
}
return 0;
}
int mac_addr_a2n(unsigned char *mac_addr, char *arg)
{
int i;
for (i = 0; i < ETH_ALEN ; i++) {
int temp;
char *cp = strchr(arg, ':');
if (cp) {
*cp = 0;
cp++;
}
if (sscanf(arg, "%x", &temp) != 1)
return -1;
if (temp < 0 || temp > 255)
return -1;
mac_addr[i] = temp;
if (!cp)
break;
arg = cp;
}
if (i < ETH_ALEN - 1)
return -1;
return 0;
}