]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-104061: Add socket.SO_BINDTOIFINDEX constant (GH-104062)
authorVictor Westerhuis <viccie30@users.noreply.github.com>
Tue, 20 Feb 2024 21:08:15 +0000 (22:08 +0100)
committerGitHub <noreply@github.com>
Tue, 20 Feb 2024 21:08:15 +0000 (23:08 +0200)
Add socket.SO_BINDTOIFINDEX constant

This socket option avoids a race condition between SO_BINDTODEVICE and network interface renaming.

Doc/library/socket.rst
Misc/NEWS.d/next/Library/2023-05-01-22-28-57.gh-issue-104061.vxfBXf.rst [new file with mode: 0644]
Modules/socketmodule.c

index dccf78ef8c0128f740b1e50d744ca770166bd144..3a931e25de91e5f31e8338df90f867181d2d26ca 100644 (file)
@@ -445,6 +445,11 @@ Constants
       Added ``IP_PKTINFO``, ``IP_UNBLOCK_SOURCE``, ``IP_BLOCK_SOURCE``,
       ``IP_ADD_SOURCE_MEMBERSHIP``, ``IP_DROP_SOURCE_MEMBERSHIP``.
 
+   .. versionchanged:: 3.13
+      Added ``SO_BINDTOIFINDEX``. On Linux this constant can be used in the
+      same way that ``SO_BINDTODEVICE`` is used, but with the index of a
+      network interface instead of its name.
+
 .. data:: AF_CAN
           PF_CAN
           SOL_CAN_*
diff --git a/Misc/NEWS.d/next/Library/2023-05-01-22-28-57.gh-issue-104061.vxfBXf.rst b/Misc/NEWS.d/next/Library/2023-05-01-22-28-57.gh-issue-104061.vxfBXf.rst
new file mode 100644 (file)
index 0000000..e15a811
--- /dev/null
@@ -0,0 +1 @@
+Add :data:`socket.SO_BINDTOIFINDEX` constant.
index 298c0e29d0d9b8a8182598bc80003e553be62b91..836cf6c05b31965c4418bad70ac7fd4319b04338 100644 (file)
@@ -7927,6 +7927,9 @@ socket_exec(PyObject *m)
 #ifdef  SO_BINDTODEVICE
     ADD_INT_MACRO(m, SO_BINDTODEVICE);
 #endif
+#ifdef  SO_BINDTOIFINDEX
+    ADD_INT_MACRO(m, SO_BINDTOIFINDEX);
+#endif
 #ifdef  SO_PRIORITY
     ADD_INT_MACRO(m, SO_PRIORITY);
 #endif