confile_utils: lxc_config_net_is_hwaddr()

parent 7e5a72cb
...@@ -2812,7 +2812,7 @@ bool network_new_hwaddrs(struct lxc_conf *conf) ...@@ -2812,7 +2812,7 @@ bool network_new_hwaddrs(struct lxc_conf *conf)
else else
lend++; lend++;
if (!lxc_config_net_hwaddr(lstart)) { if (!lxc_config_net_is_hwaddr(lstart)) {
lstart = lend; lstart = lend;
continue; continue;
} }
......
...@@ -548,6 +548,27 @@ int network_ifname(char *valuep, const char *value, size_t size) ...@@ -548,6 +548,27 @@ int network_ifname(char *valuep, const char *value, size_t size)
return 0; return 0;
} }
bool lxc_config_net_is_hwaddr(const char *line)
{
unsigned index;
char tmp[7];
if (strncmp(line, "lxc.net", 7) != 0)
return false;
if (strncmp(line, "lxc.net.hwaddr", 14) == 0)
return true;
if (strncmp(line, "lxc.network.hwaddr", 18) == 0)
return true;
if (sscanf(line, "lxc.net.%u.%6s", &index, tmp) == 2 ||
sscanf(line, "lxc.network.%u.%6s", &index, tmp) == 2)
return strncmp(tmp, "hwaddr", 6) == 0;
return false;
}
void rand_complete_hwaddr(char *hwaddr) void rand_complete_hwaddr(char *hwaddr)
{ {
const char hex[] = "0123456789abcdef"; const char hex[] = "0123456789abcdef";
...@@ -580,27 +601,6 @@ void rand_complete_hwaddr(char *hwaddr) ...@@ -580,27 +601,6 @@ void rand_complete_hwaddr(char *hwaddr)
} }
} }
bool lxc_config_net_hwaddr(const char *line)
{
unsigned index;
char tmp[7];
if (strncmp(line, "lxc.net", 7) != 0)
return false;
if (strncmp(line, "lxc.net.hwaddr", 14) == 0)
return true;
if (strncmp(line, "lxc.network.hwaddr", 18) == 0)
return true;
if (sscanf(line, "lxc.net.%u.%6s", &index, tmp) == 2 ||
sscanf(line, "lxc.network.%u.%6s", &index, tmp) == 2)
return strncmp(tmp, "hwaddr", 6) == 0;
return false;
}
/* /*
* If we find a lxc.net.[i].hwaddr or lxc.network.hwaddr in the original config * If we find a lxc.net.[i].hwaddr or lxc.network.hwaddr in the original config
* file, we expand it in the unexpanded_config, so that after a save_config we * file, we expand it in the unexpanded_config, so that after a save_config we
...@@ -617,7 +617,7 @@ void update_hwaddr(const char *line) ...@@ -617,7 +617,7 @@ void update_hwaddr(const char *line)
if (line[0] == '#') if (line[0] == '#')
return; return;
if (!lxc_config_net_hwaddr(line)) if (!lxc_config_net_is_hwaddr(line))
return; return;
/* Let config_net_hwaddr raise the error. */ /* Let config_net_hwaddr raise the error. */
......
...@@ -66,7 +66,7 @@ extern int set_config_path_item(char **conf_item, const char *value); ...@@ -66,7 +66,7 @@ extern int set_config_path_item(char **conf_item, const char *value);
extern int config_ip_prefix(struct in_addr *addr); extern int config_ip_prefix(struct in_addr *addr);
extern int network_ifname(char *valuep, const char *value, size_t size); extern int network_ifname(char *valuep, const char *value, size_t size);
extern void rand_complete_hwaddr(char *hwaddr); extern void rand_complete_hwaddr(char *hwaddr);
extern bool lxc_config_net_hwaddr(const char *line); extern bool lxc_config_net_is_hwaddr(const char *line);
extern void update_hwaddr(const char *line); extern void update_hwaddr(const char *line);
extern bool new_hwaddr(char *hwaddr); extern bool new_hwaddr(char *hwaddr);
extern int lxc_get_conf_str(char *retv, int inlen, const char *value); extern int lxc_get_conf_str(char *retv, int inlen, const char *value);
......
...@@ -518,18 +518,18 @@ void test_parse_byte_size_string(void) ...@@ -518,18 +518,18 @@ void test_parse_byte_size_string(void)
} }
} }
void test_lxc_config_net_hwaddr(void) void test_lxc_config_net_is_hwaddr(void)
{ {
if (!lxc_config_net_hwaddr("lxc.net.0.hwaddr = 00:16:3e:04:65:b8\n")) if (!lxc_config_net_is_hwaddr("lxc.net.0.hwaddr = 00:16:3e:04:65:b8\n"))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (lxc_config_net_hwaddr("lxc.net")) if (lxc_config_net_is_hwaddr("lxc.net"))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (lxc_config_net_hwaddr("lxc.net.")) if (lxc_config_net_is_hwaddr("lxc.net."))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
if (lxc_config_net_hwaddr("lxc.net.0.")) if (lxc_config_net_is_hwaddr("lxc.net.0."))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -604,7 +604,7 @@ int main(int argc, char *argv[]) ...@@ -604,7 +604,7 @@ int main(int argc, char *argv[])
test_lxc_safe_int(); test_lxc_safe_int();
test_lxc_safe_long(); test_lxc_safe_long();
test_parse_byte_size_string(); test_parse_byte_size_string();
test_lxc_config_net_hwaddr(); test_lxc_config_net_is_hwaddr();
test_task_blocks_signal(); test_task_blocks_signal();
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment