QAbstractSocketEngine: introduce QIpPacketHeader for datagrams
authorThiago Macieira <thiago.macieira@intel.com>
Tue, 10 Mar 2015 22:01:21 +0000 (15:01 -0700)
committerThiago Macieira <thiago.macieira@intel.com>
Sat, 22 Aug 2015 22:26:23 +0000 (22:26 +0000)
commit89efa7333db4b5877cb58b16e511b690fe43507c
tree29867495b54a94beeef49b92a01348a140e059b3
parent53251e23cf3f82950c5de1c2208d9f376b5bb5f0
QAbstractSocketEngine: introduce QIpPacketHeader for datagrams

This commit changes the readDatagram() and writeDatagram() virtual
functions to take a QIpPacketHeader as meta data, instead of a
QHostAddress/quint16 pair. As previously, the header is an "out"
parameter for readDatagram() and an "in" parameter for writeDatagram().

The header pointer in readDatagram() is allowed to be null if the
PacketHeaderOptions indicates WantNone. Otherwise, it must not be null.
The extra options parameter is introduced because we may not always want
all the metadata upon reception. For sending, we know what to include or
not based on what's set in the incoming header parameter.

QIpPacketHeader splits sender and destination because we'll be able to
return both on datagram reception.

Change-Id: Iee8cbc07c4434ce9b560ffff13ca4213255008c7
Reviewed-by: Richard J. Moore <rich@kde.org>
14 files changed:
src/network/socket/qabstractsocketengine_p.h
src/network/socket/qhttpsocketengine.cpp
src/network/socket/qhttpsocketengine_p.h
src/network/socket/qnativesocketengine.cpp
src/network/socket/qnativesocketengine_p.h
src/network/socket/qnativesocketengine_unix.cpp
src/network/socket/qnativesocketengine_win.cpp
src/network/socket/qnativesocketengine_winrt.cpp
src/network/socket/qnativesocketengine_winrt_p.h
src/network/socket/qsocks5socketengine.cpp
src/network/socket/qsocks5socketengine_p.h
src/network/socket/qudpsocket.cpp
tests/auto/network/socket/platformsocketengine/tst_platformsocketengine.cpp
tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp