net: implement a SO_DOMAIN getsockoption
This sockopt goes in line with SO_TYPE and SO_PROTOCOL. It makes it possible for userspace programs to pass around file descriptors — I am referring to arguments-to-functions, but it may even work for the fd passing over UNIX sockets — without needing to also pass the auxiliary information (PF_INET6/IPPROTO_TCP). Signed-off-by: Jan Engelhardt <jengelh@medozas.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
49c794e946
commit
0d6038ee76
@@ -483,6 +483,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
|
||||
break;
|
||||
case SO_TYPE:
|
||||
case SO_PROTOCOL:
|
||||
case SO_DOMAIN:
|
||||
case SO_ERROR:
|
||||
ret = -ENOPROTOOPT;
|
||||
break;
|
||||
@@ -769,6 +770,10 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
|
||||
v.val = sk->sk_protocol;
|
||||
break;
|
||||
|
||||
case SO_DOMAIN:
|
||||
v.val = sk->sk_family;
|
||||
break;
|
||||
|
||||
case SO_ERROR:
|
||||
v.val = -sock_error(sk);
|
||||
if (v.val == 0)
|
||||
|
Reference in New Issue
Block a user