[lxc-devel] [PATCH] Fix clearing IPv4/IPv6 addresses
Stéphane Graber
stgraber at ubuntu.com
Wed Jan 28 09:34:18 UTC 2015
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
src/lxc/confile.c | 35 ++++++++++++++---------------------
1 file changed, 14 insertions(+), 21 deletions(-)
diff --git a/src/lxc/confile.c b/src/lxc/confile.c
index be81f5d..e9cc474 100644
--- a/src/lxc/confile.c
+++ b/src/lxc/confile.c
@@ -787,29 +787,25 @@ static int config_network_ipv4_gateway(const char *key, const char *value,
struct lxc_conf *lxc_conf)
{
struct lxc_netdev *netdev;
- struct in_addr *gw;
netdev = network_netdev(key, value, &lxc_conf->network);
if (!netdev)
return -1;
- gw = malloc(sizeof(*gw));
- if (!gw) {
- SYSERROR("failed to allocate ipv4 gateway address");
- return -1;
- }
-
- if (!value) {
- ERROR("no ipv4 gateway address specified");
- free(gw);
- return -1;
- }
-
- if (!strcmp(value, "auto")) {
- free(gw);
+ if (!value || strlen(value) == 0) {
+ netdev->ipv4_gateway = NULL;
+ } else if (!strcmp(value, "auto")) {
netdev->ipv4_gateway = NULL;
netdev->ipv4_gateway_auto = true;
} else {
+ struct in_addr *gw;
+
+ gw = malloc(sizeof(*gw));
+ if (!gw) {
+ SYSERROR("failed to allocate ipv4 gateway address");
+ return -1;
+ }
+
if (!inet_pton(AF_INET, value, gw)) {
SYSERROR("invalid ipv4 gateway address: %s", value);
free(gw);
@@ -892,12 +888,9 @@ static int config_network_ipv6_gateway(const char *key, const char *value,
if (!netdev)
return -1;
- if (!value) {
- ERROR("no ipv6 gateway address specified");
- return -1;
- }
-
- if (!strcmp(value, "auto")) {
+ if (!value || strlen(value) == 0) {
+ netdev->ipv4_gateway = NULL;
+ } else if (!strcmp(value, "auto")) {
netdev->ipv6_gateway = NULL;
netdev->ipv6_gateway_auto = true;
} else {
--
1.9.1
More information about the lxc-devel
mailing list