|
17 | 17 | TYPE_CHECKING,
|
18 | 18 | Any,
|
19 | 19 | Dict,
|
| 20 | + List, |
20 | 21 | Type,
|
| 22 | + Tuple, |
21 | 23 | Union,
|
22 | 24 | Generic,
|
23 | 25 | Mapping,
|
@@ -806,11 +808,20 @@ def __init__(self, **kwargs: Any) -> None:
|
806 | 808 | kwargs.setdefault("follow_redirects", True)
|
807 | 809 |
|
808 | 810 | if "transport" not in kwargs:
|
809 |
| - socket_options = [ |
810 |
| - (socket.SOL_SOCKET, socket.SO_KEEPALIVE, True), |
811 |
| - (socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 60), |
812 |
| - (socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 5), |
813 |
| - ] |
| 811 | + socket_options: List[Tuple[int, int, Union[int, bool]]] = [(socket.SOL_SOCKET, socket.SO_KEEPALIVE, True)] |
| 812 | + |
| 813 | + TCP_KEEPINTVL = getattr(socket, "TCP_KEEPINTVL", None) |
| 814 | + |
| 815 | + if TCP_KEEPINTVL is not None: |
| 816 | + socket_options.append((socket.IPPROTO_TCP, TCP_KEEPINTVL, 60)) |
| 817 | + elif sys.platform == "darwin": |
| 818 | + TCP_KEEPALIVE = getattr(socket, "TCP_KEEPALIVE", 0x10) |
| 819 | + socket_options.append((socket.IPPROTO_TCP, TCP_KEEPALIVE, 60)) |
| 820 | + |
| 821 | + TCP_KEEPCNT = getattr(socket, "TCP_KEEPCNT", None) |
| 822 | + if TCP_KEEPCNT is not None: |
| 823 | + socket_options.append((socket.IPPROTO_TCP, TCP_KEEPCNT, 5)) |
| 824 | + |
814 | 825 | TCP_KEEPIDLE = getattr(socket, "TCP_KEEPIDLE", None)
|
815 | 826 | if TCP_KEEPIDLE is not None:
|
816 | 827 | socket_options.append((socket.IPPROTO_TCP, TCP_KEEPIDLE, 60))
|
@@ -1335,11 +1346,20 @@ def __init__(self, **kwargs: Any) -> None:
|
1335 | 1346 | kwargs.setdefault("follow_redirects", True)
|
1336 | 1347 |
|
1337 | 1348 | if "transport" not in kwargs:
|
1338 |
| - socket_options = [ |
1339 |
| - (socket.SOL_SOCKET, socket.SO_KEEPALIVE, True), |
1340 |
| - (socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 60), |
1341 |
| - (socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 5), |
1342 |
| - ] |
| 1349 | + socket_options: List[Tuple[int, int, Union[int, bool]]] = [(socket.SOL_SOCKET, socket.SO_KEEPALIVE, True)] |
| 1350 | + |
| 1351 | + TCP_KEEPINTVL = getattr(socket, "TCP_KEEPINTVL", None) |
| 1352 | + |
| 1353 | + if TCP_KEEPINTVL is not None: |
| 1354 | + socket_options.append((socket.IPPROTO_TCP, TCP_KEEPINTVL, 60)) |
| 1355 | + elif sys.platform == "darwin": |
| 1356 | + TCP_KEEPALIVE = getattr(socket, "TCP_KEEPALIVE", 0x10) |
| 1357 | + socket_options.append((socket.IPPROTO_TCP, TCP_KEEPALIVE, 60)) |
| 1358 | + |
| 1359 | + TCP_KEEPCNT = getattr(socket, "TCP_KEEPCNT", None) |
| 1360 | + if TCP_KEEPCNT is not None: |
| 1361 | + socket_options.append((socket.IPPROTO_TCP, TCP_KEEPCNT, 5)) |
| 1362 | + |
1343 | 1363 | TCP_KEEPIDLE = getattr(socket, "TCP_KEEPIDLE", None)
|
1344 | 1364 | if TCP_KEEPIDLE is not None:
|
1345 | 1365 | socket_options.append((socket.IPPROTO_TCP, TCP_KEEPIDLE, 60))
|
|
0 commit comments