summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid CARLIER <devnexen@gmail.com>2022-05-08 23:19:41 (GMT)
committerGitHub <noreply@github.com>2022-05-08 23:19:41 (GMT)
commit9d85aba9e245c1a0f6d1879f8bc6c260cb4eb721 (patch)
tree09649312b8e06e5fbf55748d481b8a167d57d770
parent859250cc55711f4d62b65922d3f7537826c3801e (diff)
downloadcpython-9d85aba9e245c1a0f6d1879f8bc6c260cb4eb721.zip
cpython-9d85aba9e245c1a0f6d1879f8bc6c260cb4eb721.tar.gz
cpython-9d85aba9e245c1a0f6d1879f8bc6c260cb4eb721.tar.bz2
gh-91968: Add socket constants SO_USER_COOKIE/SO_RTABLE from BSD (#91967)
Those are somewhat equivalent to Linux' SO_MARK. Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
-rwxr-xr-xDoc/library/socket.rst5
-rw-r--r--Misc/NEWS.d/next/Library/2022-04-26-18-37-24.gh-issue-91968.fuuH1_.rst1
-rw-r--r--Modules/socketmodule.c6
3 files changed, 12 insertions, 0 deletions
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index ee1aee5..4c193b8 100755
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -392,6 +392,11 @@ Constants
Added ``TCP_CONNECTION_INFO``. On MacOS this constant can be used in the
same way that ``TCP_INFO`` is used on Linux and BSD.
+ .. versionchanged:: 3.12
+ Added ``SO_RTABLE`` and ``SO_USER_COOKIE``. On OpenBSD
+ and FreeBSD respectively those constants can be used in the same way that
+ ``SO_MARK`` is used on Linux.
+
.. data:: AF_CAN
PF_CAN
SOL_CAN_*
diff --git a/Misc/NEWS.d/next/Library/2022-04-26-18-37-24.gh-issue-91968.fuuH1_.rst b/Misc/NEWS.d/next/Library/2022-04-26-18-37-24.gh-issue-91968.fuuH1_.rst
new file mode 100644
index 0000000..f16f5d3
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2022-04-26-18-37-24.gh-issue-91968.fuuH1_.rst
@@ -0,0 +1 @@
+Add ``SO_RTABLE`` and ``SO_USER_COOKIE`` constants to :mod:`socket`.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 9aefa44..f376513 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -7595,6 +7595,12 @@ PyInit__socket(void)
#ifdef SO_MARK
PyModule_AddIntMacro(m, SO_MARK);
#endif
+#ifdef SO_USER_COOKIE
+ PyModule_AddIntMacro(m, SO_USER_COOKIE);
+#endif
+#ifdef SO_RTABLE
+ PyModule_AddIntMacro(m, SO_RTABLE);
+#endif
#ifdef SO_DOMAIN
PyModule_AddIntMacro(m, SO_DOMAIN);
#endif