diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-08-20 15:50:41 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-11-14 15:54:51 +0000 |
commit | aaa187cd9951b71127c11c375e6a3954a187e1d3 (patch) | |
tree | 54dcee410994b3d64058ed6dde9e95c519fee83a /src/network/socket/qabstractsocket.cpp | |
parent | aa494d826ace02ffff5f29ae20b7738630913777 (diff) |
QAbstractSocket: Add socketOption for the Path MTU
This allow retrieving the value of the known PMTU for the current
socket. This works on Linux (IPv6 and IPv4) and FreeBSD (IPv6 only) --
the other OSes don't have the necessary API.
Note: do we need add IP_MTU_DISCOVER?
Change-Id: I6e9274c1e7444ad48c81fffd14dcaf97a18ce335
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/network/socket/qabstractsocket.cpp')
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index 6d47540b75..98baa0c047 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -387,6 +387,11 @@ (see \l{QAbstractSocket::}{setReadBufferSize()}). This enum value has been introduced in Qt 5.3. + \value PathMtuSocketOption Retrieves the Path Maximum Transmission Unit + (PMTU) value currently known by the IP stack, if any. Some IP stacks also + allow setting the MTU for transmission. + This enum value was introduced in Qt 5.11. + Possible values for \e{TypeOfServiceOption} are: \table @@ -2023,6 +2028,10 @@ void QAbstractSocket::setSocketOption(QAbstractSocket::SocketOption option, cons case ReceiveBufferSizeSocketOption: d_func()->socketEngine->setOption(QAbstractSocketEngine::ReceiveBufferSocketOption, value.toInt()); break; + + case PathMtuSocketOption: + d_func()->socketEngine->setOption(QAbstractSocketEngine::PathMtuInformation, value.toInt()); + break; } } @@ -2065,6 +2074,10 @@ QVariant QAbstractSocket::socketOption(QAbstractSocket::SocketOption option) case ReceiveBufferSizeSocketOption: ret = d_func()->socketEngine->option(QAbstractSocketEngine::ReceiveBufferSocketOption); break; + + case PathMtuSocketOption: + ret = d_func()->socketEngine->option(QAbstractSocketEngine::PathMtuInformation); + break; } if (ret == -1) return QVariant(); |