static void system_set_dev_sysctl(const char *path, const char *device, const char *val)
{
- snprintf(dev_buf, sizeof(dev_buf), path, val);
+ snprintf(dev_buf, sizeof(dev_buf), path, device);
system_set_sysctl(dev_buf, val);
}
if (dev->type != &simple_device_type)
return;
+ if (add && system_if_force_external(dev->ifname))
+ return;
+
device_set_present(dev, add);
}
static int system_bridge_if(const char *bridge, struct device *dev, int cmd, void *data)
{
struct ifreq ifr;
+
+ memset(&ifr, 0, sizeof(ifr));
if (dev)
ifr.ifr_ifindex = dev->ifindex;
else
static int system_if_flags(const char *ifname, unsigned add, unsigned rem)
{
struct ifreq ifr;
+
+ memset(&ifr, 0, sizeof(ifr));
strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
ioctl(sock_ioctl, SIOCGIFFLAGS, &ifr);
ifr.ifr_flags |= add;
if (tunnel_ioctl(base, SIOCADDTUNNEL, &p) < 0)
return -1;
+#ifdef SIOCADD6RD
cur = tb[TUNNEL_ATTR_6RD_PREFIX];
if (cur && is_sit) {
unsigned int mask;
return -1;
}
}
+#endif
return 0;
}