diff --git a/src/config.c b/src/config.c index 644110f896c318e9a0fd4b59f070c848753b18c5..eb565f4e6057ac3c3d1da49694af6d2551db4665 100644 --- a/src/config.c +++ b/src/config.c @@ -1187,36 +1187,37 @@ int uci_apply_m2(struct agent_config *cfg, char *interface_name, char *device, uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname", interface_name, "bss_transition", "1"); - do { - char buf[512] = {0}; - char basemacstr[18] = {0}; - uint8_t basemac[6] = {0}; + } - if (!config_find_uuid(cfg, buf)) { - chrCmd(buf, sizeof(buf), "db -q get hw.board.basemac"); - if (buf[0] != '\0' && strlen(buf) == 17) - strncpy(basemacstr, buf, 17); + do { + char buf[512] = {0}; + char basemacstr[18] = {0}; + uint8_t basemac[6] = {0}; - dbg("basemac: %s\n", basemacstr); - hwaddr_aton(buf, basemac); + if (!config_find_uuid(cfg, buf)) { + chrCmd(buf, sizeof(buf), "db -q get hw.board.basemac"); + if (buf[0] != '\0' && strlen(buf) == 17) + strncpy(basemacstr, buf, 17); - memset(buf, 0, sizeof(buf)); - chrCmd(buf, sizeof(buf), "uuidgen -s -r | cut -c 1-24"); + dbg("basemac: %s\n", basemacstr); + hwaddr_aton(buf, basemac); - if (buf[0] == '\0' || strlen(buf) != 36) { - dbg("uuidgen error!\n"); - break; - } + memset(buf, 0, sizeof(buf)); + chrCmd(buf, sizeof(buf), "uuidgen -s -r | cut -c 1-24"); - snprintf(buf + 24, 13, "%02X%02X%02X%02X%02X%02X", - MAC2STR(basemac)); + if (buf[0] == '\0' || strlen(buf) != 24) { + dbg("uuidgen error!\n"); + break; } - dbg("UUID: %s\n", buf); - uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, - "ifname", interface_name, "uuid", buf); - } while(0); - } + snprintf(buf + 24, 13, "%02X%02X%02X%02X%02X%02X", + MAC2STR(basemac)); + } + + dbg("UUID: %s\n", buf); + uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, + "ifname", interface_name, "uuid", buf); + } while(0); if (multi_ap == 0x01) { char buf[2] = {0};