lib/socket: don't fail if no more local ports can be assigned in nl_socket_alloc
By failing inside of nl_socket_alloc(), the user can not even work around when running out of local ports. This patch changes that if there are no more local ports, we set the port to UINT32_MAX. This is a consistent behavior to calling nl_socket_set_local_port(sk, 0). In general, since nl_socket_set_local_port() does not restict the generated ports in any way we cannot assume to have a valid port. So the check in the constructor was harmful and users who ever encountered it (because they created 1024 libnl3 sockets) could not even work around it. Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
parent
0fd510b367
commit
0271578987
1 changed files with 0 additions and 4 deletions
|
@ -126,10 +126,6 @@ static struct nl_sock *__alloc_socket(struct nl_cb *cb)
|
|||
sk->s_peer.nl_family = AF_NETLINK;
|
||||
sk->s_seq_expect = sk->s_seq_next = time(0);
|
||||
sk->s_local.nl_pid = generate_local_port();
|
||||
if (sk->s_local.nl_pid == UINT32_MAX) {
|
||||
nl_socket_free(sk);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return sk;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue