summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qnativesocketengine_win.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/socket/qnativesocketengine_win.cpp')
-rw-r--r--src/network/socket/qnativesocketengine_win.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/network/socket/qnativesocketengine_win.cpp b/src/network/socket/qnativesocketengine_win.cpp
index 598467ef629..8530c6ca819 100644
--- a/src/network/socket/qnativesocketengine_win.cpp
+++ b/src/network/socket/qnativesocketengine_win.cpp
@@ -34,6 +34,15 @@ QT_BEGIN_NAMESPACE
#ifndef IP_HOPLIMIT
#define IP_HOPLIMIT 21 // Receive packet hop limit.
#endif
+#ifndef TCP_KEEPIDLE
+#define TCP_KEEPIDLE 3
+#endif
+#ifndef TCP_KEEPINTVL
+#define TCP_KEEPINTVL 17
+#endif
+#ifndef TCP_KEEPCNT
+#define TCP_KEEPCNT 16
+#endif
#if defined(QNATIVESOCKETENGINE_DEBUG)
@@ -216,6 +225,18 @@ static void convertToLevelAndOption(QNativeSocketEngine::SocketOption opt,
case QAbstractSocketEngine::PathMtuInformation:
break; // not supported on Windows
+ case QNativeSocketEngine::KeepAliveIdleOption:
+ level = IPPROTO_TCP;
+ n = TCP_KEEPIDLE; // defined in ws2ipdef.h
+ break;
+ case QNativeSocketEngine::KeepAliveIntervalOption:
+ level = IPPROTO_TCP;
+ n = TCP_KEEPINTVL; // defined in ws2ipdef.h
+ break;
+ case QNativeSocketEngine::KeepAliveCountOption:
+ level = IPPROTO_TCP;
+ n = TCP_KEEPCNT; // defined in ws2ipdef.h
+ break;
}
}