[Python-checkins] bpo-46030: socket module add couple of FreeBSD constants. (GH-30018)

asvetlov webhook-mailer at python.org
Thu Mar 17 16:40:15 EDT 2022


https://github.com/python/cpython/commit/33698e8ff40fcc67df3d95658e87196f8021de6f
commit: 33698e8ff40fcc67df3d95658e87196f8021de6f
branch: main
author: David CARLIER <devnexen at gmail.com>
committer: asvetlov <andrew.svetlov at gmail.com>
date: 2022-03-17T22:40:00+02:00
summary:

bpo-46030: socket module add couple of FreeBSD constants. (GH-30018)

Co-authored-by: Andrew Svetlov <andrew.svetlov at gmail.com>

files:
A Misc/NEWS.d/next/Library/2021-12-10-07-07-47.bpo-46030.UN349J.rst
M Doc/library/socket.rst
M Modules/socketmodule.c

diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index 679631a739092..f8392ba1254b7 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 0000000000000..4f91b17963157
--- /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 fbdd1a164db25..7f7af1895bd9f 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



More information about the Python-checkins mailing list