mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-123476: Add support for TCP_QUICKACK socket setting to Windows (#123478)
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Steve Dower <steve.dower@microsoft.com>
This commit is contained in:
parent
6e43928831
commit
b5aa271f86
5 changed files with 59 additions and 5 deletions
|
@ -6826,6 +6826,28 @@ class TestMacOSTCPFlags(unittest.TestCase):
|
|||
def test_tcp_keepalive(self):
|
||||
self.assertTrue(socket.TCP_KEEPALIVE)
|
||||
|
||||
@unittest.skipUnless(hasattr(socket, 'TCP_QUICKACK'), 'need socket.TCP_QUICKACK')
|
||||
class TestQuickackFlag(unittest.TestCase):
|
||||
def check_set_quickack(self, sock):
|
||||
# quickack already true by default on some OS distributions
|
||||
opt = sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK)
|
||||
if opt:
|
||||
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK, 0)
|
||||
|
||||
opt = sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK)
|
||||
self.assertFalse(opt)
|
||||
|
||||
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK, 1)
|
||||
|
||||
opt = sock.getsockopt(socket.IPPROTO_TCP, socket.TCP_QUICKACK)
|
||||
self.assertTrue(opt)
|
||||
|
||||
def test_set_quickack(self):
|
||||
sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM,
|
||||
proto=socket.IPPROTO_TCP)
|
||||
with sock:
|
||||
self.check_set_quickack(sock)
|
||||
|
||||
|
||||
@unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
|
||||
class TestMSWindowsTCPFlags(unittest.TestCase):
|
||||
|
@ -6839,7 +6861,9 @@ class TestMSWindowsTCPFlags(unittest.TestCase):
|
|||
'TCP_KEEPCNT',
|
||||
# available starting with Windows 10 1709
|
||||
'TCP_KEEPIDLE',
|
||||
'TCP_KEEPINTVL'
|
||||
'TCP_KEEPINTVL',
|
||||
# available starting with Windows 7 / Server 2008 R2
|
||||
'TCP_QUICKACK',
|
||||
}
|
||||
|
||||
def test_new_tcp_flags(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue