Commit 5daab9db authored by Chenbo Feng's avatar Chenbo Feng Committed by David S. Miller

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: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarChenbo Feng <fengc@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c42cb98c
...@@ -103,4 +103,6 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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 @@ ...@@ -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, ...@@ -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, ...@@ -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).
......
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