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 <[email protected]>
Signed-off-by: Chenbo Feng <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _UAPI_ASM_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _UAPI__ASM_AVR32_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _ASM_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _ASM_IA64_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _ASM_M32R_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _UAPI_ASM_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _ASM_SOCKET_H */
#define SO_INCOMING_NAPI_ID 0x4031
+#define SO_COOKIE 0x4032
+
#endif /* _UAPI_ASM_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _ASM_POWERPC_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _ASM_SOCKET_H */
#define SO_INCOMING_NAPI_ID 0x003a
+#define SO_COOKIE 0x003b
+
/* Security levels - as per NRL IPv6 - don't actually do anything */
#define SO_SECURITY_AUTHENTICATION 0x5001
#define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* _XTENSA_SOCKET_H */
#define SO_INCOMING_NAPI_ID 56
+#define SO_COOKIE 57
+
#endif /* __ASM_GENERIC_SOCKET_H */
union {
int val;
+ u64 val64;
struct linger ling;
struct timeval tm;
} v;
break;
#endif
+ case SO_COOKIE:
+ lv = sizeof(u64);
+ if (len < lv)
+ return -EINVAL;
+ v.val64 = sock_gen_cookie(sk);
+ break;
+
default:
/* We implement the SO_SNDLOWAT etc to not be settable
* (1003.1g 7).