From d957ae2d5134c0654819b1faf2315e6ccbc1c860 Mon Sep 17 00:00:00 2001 From: Michael Tokarev Date: Fri, 20 Nov 2009 15:01:31 +0100 Subject: [PATCH] check if lxc.netdev.link is set for macvlan Ensure that lxc.netdev.link is specified for macvlan interfaces, since it's required. While at it, simplify logic in instanciate_macvlan(): remove unnecessary-complicating goto statements (we only need to perform a cleanup in one place) Signed-off-by: Michael Tokarev Signed-off-by: Daniel Lezcano --- src/lxc/conf.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 357143630..abfdb60e6 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -893,10 +893,15 @@ out_delete: lxc_device_delete(veth1); goto out; } + static int instanciate_macvlan(struct lxc_netdev *netdev) { char peer[IFNAMSIZ]; - int ret = -1; + + if (!netdev->link) { + ERROR("no link specified for macvlan netdev"); + return -1; + } snprintf(peer, sizeof(peer), "mcXXXXXX"); @@ -910,24 +915,19 @@ static int instanciate_macvlan(struct lxc_netdev *netdev) if (lxc_macvlan_create(netdev->link, peer)) { ERROR("failed to create macvlan interface '%s' on '%s'", peer, netdev->link); - goto out; + return -1; } netdev->ifindex = if_nametoindex(peer); if (!netdev->ifindex) { ERROR("failed to retrieve the index for %s", peer); - goto out_delete; + lxc_device_delete(peer); + return -1; } DEBUG("instanciated macvlan '%s', index is '%d'", peer, netdev->ifindex); - ret = 0; -out: - return ret; - -out_delete: - lxc_device_delete(peer); - goto out; + return 0; } static int instanciate_phys(struct lxc_netdev *netdev)