Commit 029744cd authored by Kishen Maloor's avatar Kishen Maloor Committed by Jakub Kicinski

mptcp: netlink: process IPv6 addrs in creating listening sockets

This change updates mptcp_pm_nl_create_listen_socket() to create
listening sockets bound to IPv6 addresses (where IPv6 is supported).

Fixes: 1729cf18 ("mptcp: create the listening socket for new port")
Acked-by: default avatarGeliang Tang <geliang.tang@suse.com>
Signed-off-by: default avatarKishen Maloor <kishen.maloor@intel.com>
Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 857898eb
...@@ -925,6 +925,7 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet, ...@@ -925,6 +925,7 @@ static int mptcp_pm_nl_append_new_local_addr(struct pm_nl_pernet *pernet,
static int mptcp_pm_nl_create_listen_socket(struct sock *sk, static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
struct mptcp_pm_addr_entry *entry) struct mptcp_pm_addr_entry *entry)
{ {
int addrlen = sizeof(struct sockaddr_in);
struct sockaddr_storage addr; struct sockaddr_storage addr;
struct mptcp_sock *msk; struct mptcp_sock *msk;
struct socket *ssock; struct socket *ssock;
...@@ -949,8 +950,11 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk, ...@@ -949,8 +950,11 @@ static int mptcp_pm_nl_create_listen_socket(struct sock *sk,
} }
mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family); mptcp_info2sockaddr(&entry->addr, &addr, entry->addr.family);
err = kernel_bind(ssock, (struct sockaddr *)&addr, #if IS_ENABLED(CONFIG_MPTCP_IPV6)
sizeof(struct sockaddr_in)); if (entry->addr.family == AF_INET6)
addrlen = sizeof(struct sockaddr_in6);
#endif
err = kernel_bind(ssock, (struct sockaddr *)&addr, addrlen);
if (err) { if (err) {
pr_warn("kernel_bind error, err=%d", err); pr_warn("kernel_bind error, err=%d", err);
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment