if (iwinfo_ioctl(SIOCGIFHWADDR, &ifr))
return 0;
+ ifr.ifr_hwaddr.sa_data[0] |= 0x02;
ifr.ifr_hwaddr.sa_data[1]++;
ifr.ifr_hwaddr.sa_data[2]++;
{
FILE *db;
char buf[256] = { 0 };
- static struct iwinfo_hardware_entry e;
+ static struct iwinfo_hardware_entry e, *rv = NULL;
if (!(db = fopen(IWINFO_HARDWARE_FILE, "r")))
return NULL;
(e.subsystem_device_id != id->subsystem_device_id))
continue;
+ rv = &e;
break;
}
fclose(db);
-
- if (e.device_name[0])
- return &e;
-
- return NULL;
+ return rv;
}
int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id *id)
while (fgets(buf, sizeof(buf), mtd) > 0)
{
- if (fscanf(mtd, "mtd%d: %*x %x %127s", &off, &len, buf) < 3 ||
+ if (fscanf(mtd, "mtd%d: %x %*x %127s", &off, &len, buf) < 3 ||
(strcmp(buf, "\"boardconfig\"") && strcmp(buf, "\"EEPROM\"") &&
strcmp(buf, "\"factory\"")))
{