mptcp: enable use_port when invoke addresses_equal
authorGeliang Tang <geliangtang@gmail.com>
Mon, 1 Feb 2021 23:09:16 +0000 (15:09 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 3 Feb 2021 02:37:19 +0000 (18:37 -0800)
When dealing with the addresses list local_addr_list or anno_list, we
should enable the function addresses_equal's parameter use_port. And
enable it in address_zero too.

Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/pm_netlink.c

index 54f0ca7..c610597 100644 (file)
@@ -91,7 +91,7 @@ static bool address_zero(const struct mptcp_addr_info *addr)
        memset(&zero, 0, sizeof(zero));
        zero.family = addr->family;
 
-       return addresses_equal(addr, &zero, false);
+       return addresses_equal(addr, &zero, true);
 }
 
 static void local_address(const struct sock_common *skc,
@@ -131,7 +131,7 @@ static bool lookup_subflow_by_saddr(const struct list_head *list,
                skc = (struct sock_common *)mptcp_subflow_tcp_sock(subflow);
 
                local_address(skc, &cur);
-               if (addresses_equal(&cur, saddr, false))
+               if (addresses_equal(&cur, saddr, saddr->port))
                        return true;
        }
 
@@ -247,7 +247,7 @@ lookup_anno_list_by_saddr(struct mptcp_sock *msk,
        struct mptcp_pm_add_entry *entry;
 
        list_for_each_entry(entry, &msk->pm.anno_list, list) {
-               if (addresses_equal(&entry->addr, addr, false))
+               if (addresses_equal(&entry->addr, addr, true))
                        return entry;
        }
 
@@ -773,7 +773,7 @@ int mptcp_pm_nl_get_local_id(struct mptcp_sock *msk, struct sock_common *skc)
 
        rcu_read_lock();
        list_for_each_entry_rcu(entry, &pernet->local_addr_list, list) {
-               if (addresses_equal(&entry->addr, &skc_local, false)) {
+               if (addresses_equal(&entry->addr, &skc_local, entry->addr.port)) {
                        ret = entry->addr.id;
                        break;
                }