From 242b73965cc3cce74de36d0ee758d98bd0640cd6 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Mon, 13 Nov 2023 17:26:35 +0100 Subject: [PATCH] wsc: fix uuid generation --- src/config.c | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/src/config.c b/src/config.c index 644110f89..eb565f4e6 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}; -- GitLab