From fb69c8e6afdae91ea5cc2dee9881e3b0a7afd5ad Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Mon, 13 May 2013 11:12:10 +0200 Subject: [PATCH] Use logical instead of physical name for tunnel underlying link. Signed-off-by: Steven Barth --- system-linux.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/system-linux.c b/system-linux.c index efda0d5..f5c900d 100644 --- a/system-linux.c +++ b/system-linux.c @@ -1342,9 +1342,14 @@ int system_add_ip_tunnel(const char *name, struct blob_attr *attr) return -EINVAL; unsigned int link = 0; - if ((cur = tb[TUNNEL_ATTR_LINK]) && - !(link = if_nametoindex((const char*)blobmsg_data(cur)))) - return -EINVAL; + if ((cur = tb[TUNNEL_ATTR_LINK])) { + struct interface *iface = vlist_find(&interfaces, blobmsg_data(cur), iface, node); + if (!iface) + return -EINVAL; + + if (iface->l3_dev.dev) + link = iface->l3_dev.dev->ifindex; + } if (!strcmp(str, "sit")) { -- 2.25.1