diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst index 679631a7390..f8392ba1254 100755 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -556,6 +556,21 @@ Constants .. availability:: Linux >= 4.7. +.. data:: SCM_CREDS2 + LOCAL_CREDS + LOCAL_CREDS_PERSISTENT + + LOCAL_CREDS and LOCAL_CREDS_PERSISTENT can be used + with SOCK_DGRAM, SOCK_STREAM sockets, equivalent to + Linux/DragonFlyBSD SO_PASSCRED, while LOCAL_CREDS + sends the credentials at first read, LOCAL_CREDS_PERSISTENT + sends for each read, SCM_CREDS2 must be then used for + the latter for the message type. + + .. versionadded:: 3.11 + + .. availability:: FreeBSD. + Functions ^^^^^^^^^ diff --git a/Misc/NEWS.d/next/Library/2021-12-10-07-07-47.bpo-46030.UN349J.rst b/Misc/NEWS.d/next/Library/2021-12-10-07-07-47.bpo-46030.UN349J.rst new file mode 100644 index 00000000000..4f91b179631 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-12-10-07-07-47.bpo-46030.UN349J.rst @@ -0,0 +1 @@ +Add ``LOCAL_CREDS``, ``LOCAL_CREDS_PERSISTENT`` and ``SCM_CREDS2`` FreeBSD constants to the socket module. diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index fbdd1a164db..7f7af1895bd 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -7581,6 +7581,12 @@ PyInit__socket(void) #ifdef SO_PROTOCOL PyModule_AddIntMacro(m, SO_PROTOCOL); #endif +#ifdef LOCAL_CREDS + PyModule_AddIntMacro(m, LOCAL_CREDS); +#endif +#ifdef LOCAL_CREDS_PERSISTENT + PyModule_AddIntMacro(m, LOCAL_CREDS_PERSISTENT); +#endif /* Maximum number of connections for "listen" */ #ifdef SOMAXCONN @@ -7599,6 +7605,9 @@ PyInit__socket(void) #ifdef SCM_CREDS PyModule_AddIntMacro(m, SCM_CREDS); #endif +#ifdef SCM_CREDS2 + PyModule_AddIntMacro(m, SCM_CREDS2); +#endif /* Flags for send, recv */ #ifdef MSG_OOB