X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=system-linux.c;h=f5c900db2185ff5b6e17cc5228bc3f04208f92aa;hp=efda0d5e54a0ac924204e06584fadbd779f75120;hb=fb69c8e6afdae91ea5cc2dee9881e3b0a7afd5ad;hpb=570302d28d18d47f095f864be161045e169b5941 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")) {