split alias support into a separate source file for better readability
[project/netifd.git] / system-linux.c
index aaa8230..3372a66 100644 (file)
@@ -275,6 +275,8 @@ int system_bridge_delbr(struct device *bridge)
 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
@@ -350,6 +352,8 @@ static int system_if_resolve(struct device *dev)
 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;
@@ -1065,6 +1069,7 @@ int system_add_ip_tunnel(const char *name, struct blob_attr *attr)
        if (tunnel_ioctl(base, SIOCADDTUNNEL, &p) < 0)
                return -1;
 
+#ifdef SIOCADD6RD
        cur = tb[TUNNEL_ATTR_6RD_PREFIX];
        if (cur && is_sit) {
                unsigned int mask;
@@ -1089,6 +1094,7 @@ int system_add_ip_tunnel(const char *name, struct blob_attr *attr)
                        return -1;
                }
        }
+#endif
 
        return 0;
 }