From cbcd4c8279be99e6674319ac2202d777431144e5 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 23 Feb 2016 14:46:13 +0100 Subject: [PATCH] sup-config/file: Addressed issue with ipv4-network not reading prefix That is the syntax now accepts options such as: "ipv4-network = x.x.x.x/y". Reported by Frank Rosquin. --- src/sup-config/file.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/sup-config/file.c b/src/sup-config/file.c index 4d62beea..47332907 100644 --- a/src/sup-config/file.c +++ b/src/sup-config/file.c @@ -164,7 +164,7 @@ int parse_group_cfg_file(struct cfg_st *global_config, tOptionValue const * pov; const tOptionValue* val, *prev; char *tmp; -unsigned prefix = 0; +unsigned prefix = 0, prefix4 = 0; int ret; unsigned j; @@ -234,11 +234,17 @@ unsigned j; READ_RAW_STRING("cgroup", msg->config->cgroup); READ_RAW_STRING("ipv4-network", msg->config->ipv4_net); - READ_RAW_STRING("ipv6-network", msg->config->ipv6_net); - READ_RAW_STRING("ipv4-netmask", msg->config->ipv4_netmask); READ_RAW_STRING("explicit-ipv4", msg->config->explicit_ipv4); - READ_RAW_STRING("explicit-ipv6", msg->config->explicit_ipv6); + prefix4 = extract_prefix(msg->config->ipv4_net); + if (prefix4 == 0) { + READ_RAW_STRING("ipv4-netmask", msg->config->ipv4_netmask); + } else { + msg->config->ipv4_netmask = ipv4_prefix_to_strmask(pool, prefix4); + } + + READ_RAW_STRING("ipv6-network", msg->config->ipv6_net); + READ_RAW_STRING("explicit-ipv6", msg->config->explicit_ipv6); READ_RAW_NUMERIC("ipv6-subnet-prefix", msg->config->ipv6_subnet_prefix, msg->config->has_ipv6_subnet_prefix); msg->config->ipv6_prefix = extract_prefix(msg->config->ipv6_net);