diff options
author | Vincent Bernat <vincent@bernat.im> | 2018-07-31 21:18:11 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-08-01 18:50:04 +0200 |
commit | 83ba4645152d1177c161750e1064e3a8e7cee19b (patch) | |
tree | 7209c851dda98efb2aa1e7a42ff738d3fe560c38 /include/net/inet_sock.h | |
parent | net: change Exar/Neterion menu items to be alphabetical (diff) | |
download | linux-83ba4645152d1177c161750e1064e3a8e7cee19b.tar.xz linux-83ba4645152d1177c161750e1064e3a8e7cee19b.zip |
net: add helpers checking if socket can be bound to nonlocal address
The construction "net->ipv4.sysctl_ip_nonlocal_bind || inet->freebind
|| inet->transparent" is present three times and its IPv6 counterpart
is also present three times. We introduce two small helpers to
characterize these tests uniformly.
Signed-off-by: Vincent Bernat <vincent@bernat.im>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/inet_sock.h')
-rw-r--r-- | include/net/inet_sock.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h index 314be484c696..e03b93360f33 100644 --- a/include/net/inet_sock.h +++ b/include/net/inet_sock.h @@ -359,4 +359,12 @@ static inline bool inet_get_convert_csum(struct sock *sk) return !!inet_sk(sk)->convert_csum; } + +static inline bool inet_can_nonlocal_bind(struct net *net, + struct inet_sock *inet) +{ + return net->ipv4.sysctl_ip_nonlocal_bind || + inet->freebind || inet->transparent; +} + #endif /* _INET_SOCK_H */ |