ANDROID: netfilter: xt_qtaguid: Allow tracking loopback
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>
This commit is contained in:
@@ -1108,18 +1108,13 @@ static void iface_stat_create(struct net_device *net_dev,
|
|||||||
spin_lock_bh(&iface_stat_list_lock);
|
spin_lock_bh(&iface_stat_list_lock);
|
||||||
entry = get_iface_entry(ifname);
|
entry = get_iface_entry(ifname);
|
||||||
if (entry != NULL) {
|
if (entry != NULL) {
|
||||||
bool activate = !ipv4_is_loopback(ipaddr);
|
|
||||||
IF_DEBUG("qtaguid: iface_stat: create(%s): entry=%p\n",
|
IF_DEBUG("qtaguid: iface_stat: create(%s): entry=%p\n",
|
||||||
ifname, entry);
|
ifname, entry);
|
||||||
iface_check_stats_reset_and_adjust(net_dev, 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): "
|
IF_DEBUG("qtaguid: %s(%s): "
|
||||||
"tracking now %d on ip=%pI4\n", __func__,
|
"tracking now %d on ip=%pI4\n", __func__,
|
||||||
entry->ifname, activate, &ipaddr);
|
entry->ifname, true, &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);
|
|
||||||
goto done_unlock_put;
|
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);
|
spin_lock_bh(&iface_stat_list_lock);
|
||||||
entry = get_iface_entry(ifname);
|
entry = get_iface_entry(ifname);
|
||||||
if (entry != NULL) {
|
if (entry != NULL) {
|
||||||
bool activate = !(addr_type & IPV6_ADDR_LOOPBACK);
|
|
||||||
IF_DEBUG("qtaguid: %s(%s): entry=%p\n", __func__,
|
IF_DEBUG("qtaguid: %s(%s): entry=%p\n", __func__,
|
||||||
ifname, entry);
|
ifname, entry);
|
||||||
iface_check_stats_reset_and_adjust(net_dev, 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): "
|
IF_DEBUG("qtaguid: %s(%s): "
|
||||||
"tracking now %d on ip=%pI6c\n", __func__,
|
"tracking now %d on ip=%pI6c\n", __func__,
|
||||||
entry->ifname, activate, &ifa->addr);
|
entry->ifname, true, &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);
|
|
||||||
goto done_unlock_put;
|
goto done_unlock_put;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user