netfilter: xt_qtaguid: Allow tracking loopback
authorJP Abgrall <jpa@google.com>
Thu, 7 Feb 2013 01:40:07 +0000 (17:40 -0800)
committerJohn Stultz <john.stultz@linaro.org>
Tue, 16 Feb 2016 21:51:29 +0000 (13:51 -0800)
In the past it would always ignore interfaces with loopback addresses.
Now we just treat them like any other.
This also helps with writing tests that check for the presence
of the qtaguid module.

Signed-off-by: JP Abgrall <jpa@google.com>
net/netfilter/xt_qtaguid.c

index 92e5f80bd8fa1061cb4e59cc33de7b5b4c3d91fc..992a6e044902a8e5ef9eb9459b3a67e5b96db9ad 100644 (file)
@@ -1108,18 +1108,13 @@ static void iface_stat_create(struct net_device *net_dev,
        spin_lock_bh(&iface_stat_list_lock);
        entry = get_iface_entry(ifname);
        if (entry != NULL) {
-               bool activate = !ipv4_is_loopback(ipaddr);
                IF_DEBUG("qtaguid: iface_stat: create(%s): entry=%p\n",
                         ifname, entry);
                iface_check_stats_reset_and_adjust(net_dev, entry);
-               _iface_stat_set_active(entry, net_dev, activate);
+               _iface_stat_set_active(entry, net_dev, true);
                IF_DEBUG("qtaguid: %s(%s): "
                         "tracking now %d on ip=%pI4\n", __func__,
-                        entry->ifname, activate, &ipaddr);
-               goto done_unlock_put;
-       } else if (ipv4_is_loopback(ipaddr)) {
-               IF_DEBUG("qtaguid: iface_stat: create(%s): "
-                        "ignore loopback dev. ip=%pI4\n", ifname, &ipaddr);
+                        entry->ifname, true, &ipaddr);
                goto done_unlock_put;
        }
 
@@ -1170,19 +1165,13 @@ static void iface_stat_create_ipv6(struct net_device *net_dev,
        spin_lock_bh(&iface_stat_list_lock);
        entry = get_iface_entry(ifname);
        if (entry != NULL) {
-               bool activate = !(addr_type & IPV6_ADDR_LOOPBACK);
                IF_DEBUG("qtaguid: %s(%s): entry=%p\n", __func__,
                         ifname, entry);
                iface_check_stats_reset_and_adjust(net_dev, entry);
-               _iface_stat_set_active(entry, net_dev, activate);
+               _iface_stat_set_active(entry, net_dev, true);
                IF_DEBUG("qtaguid: %s(%s): "
                         "tracking now %d on ip=%pI6c\n", __func__,
-                        entry->ifname, activate, &ifa->addr);
-               goto done_unlock_put;
-       } else if (addr_type & IPV6_ADDR_LOOPBACK) {
-               IF_DEBUG("qtaguid: %s(%s): "
-                        "ignore loopback dev. ip=%pI6c\n", __func__,
-                        ifname, &ifa->addr);
+                        entry->ifname, true, &ifa->addr);
                goto done_unlock_put;
        }