]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-120056: Add `IP_RECVERR`, `IP_RECVORIGDSTADDR`, `IP_RECVTTL` to `socket` module...
authorNikita Sobolev <mail@sobolevn.me>
Wed, 12 Jun 2024 01:00:56 +0000 (04:00 +0300)
committerGitHub <noreply@github.com>
Wed, 12 Jun 2024 01:00:56 +0000 (21:00 -0400)
* gh-120056: Add `IP_RECVERR` and `IP_RECVTTL` to `socket` module

* Fix news

* Address review

* Update NEWS

Doc/library/socket.rst
Misc/NEWS.d/next/Library/2024-06-04-19-49-16.gh-issue-120056.5aqozw.rst [new file with mode: 0644]
Modules/socketmodule.c

index 2df0257d1f24f0b1b4220c21898f86d4bf719975..782fb9b27ae1bac7a1c404bcd1c923cbdf15dbee 100644 (file)
@@ -450,6 +450,10 @@ Constants
       same way that ``SO_BINDTODEVICE`` is used, but with the index of a
       network interface instead of its name.
 
+   .. versionchanged:: 3.14
+      Added missing ``IP_RECVERR``, ``IP_RECVTTL``, and ``IP_RECVORIGDSTADDR``
+      on Linux.
+
 .. data:: AF_CAN
           PF_CAN
           SOL_CAN_*
diff --git a/Misc/NEWS.d/next/Library/2024-06-04-19-49-16.gh-issue-120056.5aqozw.rst b/Misc/NEWS.d/next/Library/2024-06-04-19-49-16.gh-issue-120056.5aqozw.rst
new file mode 100644 (file)
index 0000000..0adb70f
--- /dev/null
@@ -0,0 +1,3 @@
+Add :data:`!socket.IP_RECVERR` and :data:`!socket.IP_RECVTTL` constants
+(both available since Linux 2.2).
+And :data:`!socket.IP_RECVORIGDSTADDR` constant (available since Linux 2.6.29).
index cb7dc25e23fb3db7b1a64c2648c1d6f9742a5544..0626d7934983db1e146cf3c0d433358c3fafcafa 100644 (file)
@@ -8412,15 +8412,24 @@ socket_exec(PyObject *m)
 #ifdef  IP_TTL
     ADD_INT_MACRO(m, IP_TTL);
 #endif
+#ifdef  IP_RECVERR
+    ADD_INT_MACRO(m, IP_RECVERR);
+#endif
 #ifdef  IP_RECVOPTS
     ADD_INT_MACRO(m, IP_RECVOPTS);
 #endif
+#ifdef  IP_RECVORIGDSTADDR
+    ADD_INT_MACRO(m, IP_RECVORIGDSTADDR);
+#endif
 #ifdef  IP_RECVRETOPTS
     ADD_INT_MACRO(m, IP_RECVRETOPTS);
 #endif
 #ifdef  IP_RECVTOS
     ADD_INT_MACRO(m, IP_RECVTOS);
 #endif
+#ifdef  IP_RECVTTL
+    ADD_INT_MACRO(m, IP_RECVTTL);
+#endif
 #ifdef  IP_RECVDSTADDR
     ADD_INT_MACRO(m, IP_RECVDSTADDR);
 #endif