Skip to content
Snippets Groups Projects
Commit 52e85d2d authored by Jakob Olsson's avatar Jakob Olsson
Browse files

config: name node/radio sections

parent 2c8c05e9
No related branches found
No related tags found
No related merge requests found
Pipeline #41099 failed
...@@ -333,6 +333,11 @@ int cntlr_config_add_agent(struct controller_config *c, char *al_mac) ...@@ -333,6 +333,11 @@ int cntlr_config_add_agent(struct controller_config *c, char *al_mac)
struct uci_context *ctx = NULL; struct uci_context *ctx = NULL;
struct uci_package *pkg; struct uci_package *pkg;
struct uci_section *section; struct uci_section *section;
struct uci_ptr ptr = {0};
char name[32] = { 0 };
static const char s[2] = ":";
char *token;
char mac[18] = { 0 };
int ret = -1; int ret = -1;
pkg = uci_load_pkg(&ctx, "mapcontroller"); pkg = uci_load_pkg(&ctx, "mapcontroller");
...@@ -347,6 +352,22 @@ int cntlr_config_add_agent(struct controller_config *c, char *al_mac) ...@@ -347,6 +352,22 @@ int cntlr_config_add_agent(struct controller_config *c, char *al_mac)
if (ret) if (ret)
goto out_pkg; goto out_pkg;
strncpy(mac, al_mac, sizeof(mac) - 1);
strncpy(name, "node_", sizeof(name) - 1);
token = strtok(mac, s);
while (token != NULL) {
snprintf(name + strlen(name),
(sizeof(name) - strlen(name)),
"%s", token);
token = strtok(NULL, s);
}
ptr.p = pkg;
ptr.s = section;
ptr.value = name;
uci_rename(ctx, &ptr);
ret = uci_save(ctx, pkg); ret = uci_save(ctx, pkg);
if (ret) if (ret)
goto out_pkg; goto out_pkg;
...@@ -375,9 +396,31 @@ int cntlr_config_add_agent_radio(struct controller_config *c, char *al_mac, ...@@ -375,9 +396,31 @@ int cntlr_config_add_agent_radio(struct controller_config *c, char *al_mac,
section = config_get_section(ctx, pkg, "radio", "macaddr", radio_mac); section = config_get_section(ctx, pkg, "radio", "macaddr", radio_mac);
if (!section) { if (!section) {
char name[32] = { 0 };
static const char s[2] = ":";
char *token;
char mac[18] = { 0 };
struct uci_ptr ptr = {0};
ret = uci_add_section(ctx, pkg, "radio", &section); ret = uci_add_section(ctx, pkg, "radio", &section);
if (ret) if (ret)
goto out_pkg; goto out_pkg;
strncpy(mac, radio_mac, 18);
strncpy(name, "radio_", sizeof(name));
token = strtok(mac, s);
while (token != NULL) {
snprintf(name + strlen(name),
(sizeof(name) - strlen(name)),
"%s", token);
token = strtok(NULL, s);
}
ptr.p = pkg;
ptr.s = section;
ptr.value = name;
uci_rename(ctx, &ptr);
} }
ret = uci_save(ctx, pkg); ret = uci_save(ctx, pkg);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment