diff --git a/src/core/config.c b/src/core/config.c index 830f646205469e0f706ca50148d6ec56127e4311..bed310c157dd9c39dff5efbb3e8b8e08953b257f 100644 --- a/src/core/config.c +++ b/src/core/config.c @@ -30,6 +30,8 @@ #include <wsc.h> +#include <easy/easy.h> + #include "debug.h" #include "utils.h" #include "config.h" @@ -815,6 +817,34 @@ 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, "ieee80211v", "1"); + do { + char buf[512] = {0}; + char basemacstr[18] = {0}; + uint8_t basemac[6] = {0}; + //uint8_t uuid[16] = {0}; + + chrCmd(buf, sizeof(buf), "db -q get hw.board.basemac"); + if (buf[0] != '\0' && strlen(buf) == 17) + strncpy(basemacstr, buf, 17); + + fprintf(stderr, "basemac: %s\n", basemacstr); + hwaddr_aton(buf, basemac); + + memset(buf, 0, sizeof(buf)); + chrCmd(buf, sizeof(buf), + "uuidgen -s --namespace @dns --name www.iopsys.eu"); + + if (buf[0] == '\0' || strlen(buf) != 36) { + fprintf(stderr, "uuidgen error!\n"); + //TODO + } + + snprintf(buf + 24, 13, "%02x%02x%02x%02x%02x%02x", MAC2STR(basemac)); + fprintf(stderr, "UUID: %s\n", buf); + uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname", + interface_name, "uuid", buf); + } while(0); + if (onboarded) uci_set_wireless_interface_option(UCI_WIRELESS, UCI_WLAN_IFACE, "ifname",