netfilter: xt_qtaguid: Allow tracking loopback
authorJP Abgrall <jpa@google.com>
Thu, 7 Feb 2013 01:40:07 +0000 (17:40 -0800)
committerJP Abgrall <jpa@google.com>
Thu, 7 Feb 2013 20:54:35 +0000 (12:54 -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 25f2cee64de514362aa85ac48de767c7d4d67bcc..495b62ea0b696d38916fdb57aa3726a3ad402e20 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;
        }