diff options
author | Sérgio Martins <sergio.martins@kdab.com> | 2016-08-28 21:34:32 +0100 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2016-10-06 21:20:33 +0000 |
commit | dd00f6dd91a28f3e76bc4c3e894174efffc7f201 (patch) | |
tree | 7c92b7fea6b8a9d1cf12b00f2a22f546012e3bcc /examples/corelib/ipc/localfortuneserver/server.cpp | |
parent | f9acbaccde278eaf44a5324c2a63a99a4cccfb1c (diff) |
Handle short reads in the local sockets example
Protection against short reads was already half implemented,
blockSize was being sent by the server but never used by the client.
Also, blockSize was bumped to quint32: If you're in a position where
short reads can happen then quint16 is probably not enough to hold the
size of your data. On Linux I could only reproduce short reads for
messages > 500K.
Change-Id: I191a3d781da1d8a119debbdafae641c8340a1da2
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'examples/corelib/ipc/localfortuneserver/server.cpp')
-rw-r--r-- | examples/corelib/ipc/localfortuneserver/server.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/examples/corelib/ipc/localfortuneserver/server.cpp b/examples/corelib/ipc/localfortuneserver/server.cpp index 5b64e917d9..fa867eb737 100644 --- a/examples/corelib/ipc/localfortuneserver/server.cpp +++ b/examples/corelib/ipc/localfortuneserver/server.cpp @@ -96,10 +96,10 @@ void Server::sendFortune() QByteArray block; QDataStream out(&block, QIODevice::WriteOnly); out.setVersion(QDataStream::Qt_4_0); - out << (quint16)0; + out << (quint32)0; out << fortunes.at(qrand() % fortunes.size()); out.device()->seek(0); - out << (quint16)(block.size() - sizeof(quint16)); + out << (quint32)(block.size() - sizeof(quint32)); QLocalSocket *clientConnection = server->nextPendingConnection(); connect(clientConnection, SIGNAL(disconnected()), |