summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid CARLIER <devnexen@gmail.com>2022-03-17 20:40:00 (GMT)
committerGitHub <noreply@github.com>2022-03-17 20:40:00 (GMT)
commit33698e8ff40fcc67df3d95658e87196f8021de6f (patch)
tree77550df4636ef686630023de63d44c7569512ff1
parent424dfc723137fb1ca8f3b5e4eb12ba3e669a9f52 (diff)
downloadcpython-33698e8ff40fcc67df3d95658e87196f8021de6f.zip
cpython-33698e8ff40fcc67df3d95658e87196f8021de6f.tar.gz
cpython-33698e8ff40fcc67df3d95658e87196f8021de6f.tar.bz2
bpo-46030: socket module add couple of FreeBSD constants. (GH-30018)
Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
-rwxr-xr-xDoc/library/socket.rst15
-rw-r--r--Misc/NEWS.d/next/Library/2021-12-10-07-07-47.bpo-46030.UN349J.rst1
-rw-r--r--Modules/socketmodule.c9
3 files changed, 25 insertions, 0 deletions
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 679631a..f8392ba 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 0000000..4f91b17
--- /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 fbdd1a1..7f7af18 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