diff options
author | Shane Harvey <shnhrv@gmail.com> | 2021-07-14 22:53:15 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-14 22:53:15 (GMT) |
commit | d59d7374a364c4e5c2b9a83d8e4543ee494285b8 (patch) | |
tree | e53a89ab474d7671bd0e21fda5801bb4eda641de | |
parent | 2b47af63982e4ccc09ae14c7c66ba115804bbbf6 (diff) | |
download | cpython-d59d7374a364c4e5c2b9a83d8e4543ee494285b8.zip cpython-d59d7374a364c4e5c2b9a83d8e4543ee494285b8.tar.gz cpython-d59d7374a364c4e5c2b9a83d8e4543ee494285b8.tar.bz2 |
bpo-34932: Add socket.TCP_KEEPALIVE for macOS (GH-25079)
-rwxr-xr-x | Doc/library/socket.rst | 2 | ||||
-rwxr-xr-x | Lib/test/test_socket.py | 7 | ||||
-rw-r--r-- | Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst | 1 | ||||
-rw-r--r-- | Modules/socketmodule.c | 4 |
4 files changed, 14 insertions, 0 deletions
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst index d67df47..5634d81 100755 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -381,6 +381,8 @@ Constants .. versionchanged:: 3.10 ``IP_RECVTOS`` was added. + Added ``TCP_KEEPALIVE``. On MacOS this constant can be used in the same + way that ``TCP_KEEPIDLE`` is used on Linux. .. data:: AF_CAN PF_CAN diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 828d1f3..c09f11e 100755 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -6446,6 +6446,12 @@ class LinuxKernelCryptoAPI(unittest.TestCase): sock.bind(("type", "n" * 64)) +@unittest.skipUnless(sys.platform == 'darwin', 'macOS specific test') +class TestMacOSTCPFlags(unittest.TestCase): + def test_tcp_keepalive(self): + self.assertTrue(socket.TCP_KEEPALIVE) + + @unittest.skipUnless(sys.platform.startswith("win"), "requires Windows") class TestMSWindowsTCPFlags(unittest.TestCase): knownTCPFlags = { @@ -6704,6 +6710,7 @@ def test_main(): SendfileUsingSendfileTest, ]) tests.append(TestMSWindowsTCPFlags) + tests.append(TestMacOSTCPFlags) thread_info = threading_helper.threading_setup() support.run_unittest(*tests) diff --git a/Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst b/Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst new file mode 100644 index 0000000..d3a52c9 --- /dev/null +++ b/Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst @@ -0,0 +1 @@ +Add socket.TCP_KEEPALIVE support for macOS. Patch by Shane Harvey. diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 142cc7c..9233430 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -8159,6 +8159,10 @@ PyInit__socket(void) #ifdef TCP_KEEPIDLE PyModule_AddIntMacro(m, TCP_KEEPIDLE); #endif + /* TCP_KEEPALIVE is OSX's TCP_KEEPIDLE equivalent */ +#if defined(__APPLE__) && defined(TCP_KEEPALIVE) + PyModule_AddIntMacro(m, TCP_KEEPALIVE); +#endif #ifdef TCP_KEEPINTVL PyModule_AddIntMacro(m, TCP_KEEPINTVL); #endif |