netifd: interface-ip: don't set fib6 policies if ipv6 disabled
[project/netifd.git] / interface-ip.c
index 8b60963300b14ef477882cd912f4265ef3e2ee8e..986ab5b4ad86e89065e16d5cfb513316d44f9c73 100644 (file)
@@ -1728,11 +1728,13 @@ void interface_ip_set_enabled(struct interface_ip_settings *ip, bool enabled)
 
        if (ip->iface->policy_rules_set != enabled &&
            ip->iface->l3_dev.dev) {
-               set_ip_lo_policy(enabled, true, ip->iface);
+               if (ip->iface->l3_dev.dev->settings.ipv6) {
+                       set_ip_lo_policy(enabled, true, ip->iface);
+                       set_ip_source_policy(enabled, true, IPRULE_PRIORITY_REJECT + ip->iface->l3_dev.dev->ifindex,
+                                            NULL, 0, 0, ip->iface, "failed_policy", true);
+               }
                set_ip_lo_policy(enabled, false, ip->iface);
 
-               set_ip_source_policy(enabled, true, IPRULE_PRIORITY_REJECT + ip->iface->l3_dev.dev->ifindex,
-                       NULL, 0, 0, ip->iface, "failed_policy", true);
                ip->iface->policy_rules_set = enabled;
        }
 }