From: Steven Barth Date: Mon, 13 May 2013 09:12:10 +0000 (+0200) Subject: Use logical instead of physical name for tunnel underlying link. X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fb69c8e6afdae91ea5cc2dee9881e3b0a7afd5ad;p=oweals%2Fnetifd.git Use logical instead of physical name for tunnel underlying link. Signed-off-by: Steven Barth --- 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")) {