mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
New getsockopt option to get socket cookie
Introduce a new getsockopt operation to retrieve the socket cookie for a specific socket based on the socket fd. It returns a unique non-decreasing cookie for each socket. Tested: https://android-review.googlesource.com/#/c/358163/ Acked-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Chenbo Feng <fengc@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c42cb98cfd
commit
5daab9db7b
@ -103,4 +103,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _UAPI_ASM_SOCKET_H */
|
#endif /* _UAPI_ASM_SOCKET_H */
|
||||||
|
@ -96,4 +96,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _UAPI__ASM_AVR32_SOCKET_H */
|
#endif /* _UAPI__ASM_AVR32_SOCKET_H */
|
||||||
|
@ -96,5 +96,7 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _ASM_SOCKET_H */
|
#endif /* _ASM_SOCKET_H */
|
||||||
|
|
||||||
|
@ -105,4 +105,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _ASM_IA64_SOCKET_H */
|
#endif /* _ASM_IA64_SOCKET_H */
|
||||||
|
@ -96,4 +96,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _ASM_M32R_SOCKET_H */
|
#endif /* _ASM_M32R_SOCKET_H */
|
||||||
|
@ -114,4 +114,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _UAPI_ASM_SOCKET_H */
|
#endif /* _UAPI_ASM_SOCKET_H */
|
||||||
|
@ -96,4 +96,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _ASM_SOCKET_H */
|
#endif /* _ASM_SOCKET_H */
|
||||||
|
@ -95,4 +95,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 0x4031
|
#define SO_INCOMING_NAPI_ID 0x4031
|
||||||
|
|
||||||
|
#define SO_COOKIE 0x4032
|
||||||
|
|
||||||
#endif /* _UAPI_ASM_SOCKET_H */
|
#endif /* _UAPI_ASM_SOCKET_H */
|
||||||
|
@ -103,4 +103,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _ASM_POWERPC_SOCKET_H */
|
#endif /* _ASM_POWERPC_SOCKET_H */
|
||||||
|
@ -102,4 +102,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _ASM_SOCKET_H */
|
#endif /* _ASM_SOCKET_H */
|
||||||
|
@ -92,6 +92,8 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 0x003a
|
#define SO_INCOMING_NAPI_ID 0x003a
|
||||||
|
|
||||||
|
#define SO_COOKIE 0x003b
|
||||||
|
|
||||||
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
/* Security levels - as per NRL IPv6 - don't actually do anything */
|
||||||
#define SO_SECURITY_AUTHENTICATION 0x5001
|
#define SO_SECURITY_AUTHENTICATION 0x5001
|
||||||
#define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
|
#define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
|
||||||
|
@ -107,4 +107,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* _XTENSA_SOCKET_H */
|
#endif /* _XTENSA_SOCKET_H */
|
||||||
|
@ -98,4 +98,6 @@
|
|||||||
|
|
||||||
#define SO_INCOMING_NAPI_ID 56
|
#define SO_INCOMING_NAPI_ID 56
|
||||||
|
|
||||||
|
#define SO_COOKIE 57
|
||||||
|
|
||||||
#endif /* __ASM_GENERIC_SOCKET_H */
|
#endif /* __ASM_GENERIC_SOCKET_H */
|
||||||
|
@ -1083,6 +1083,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
|
|||||||
|
|
||||||
union {
|
union {
|
||||||
int val;
|
int val;
|
||||||
|
u64 val64;
|
||||||
struct linger ling;
|
struct linger ling;
|
||||||
struct timeval tm;
|
struct timeval tm;
|
||||||
} v;
|
} v;
|
||||||
@ -1340,6 +1341,13 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
case SO_COOKIE:
|
||||||
|
lv = sizeof(u64);
|
||||||
|
if (len < lv)
|
||||||
|
return -EINVAL;
|
||||||
|
v.val64 = sock_gen_cookie(sk);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* We implement the SO_SNDLOWAT etc to not be settable
|
/* We implement the SO_SNDLOWAT etc to not be settable
|
||||||
* (1003.1g 7).
|
* (1003.1g 7).
|
||||||
|
Loading…
Reference in New Issue
Block a user