- if (_blockSize == 0) {
- if (socket()->bytesAvailable() < 4)
- return false;
- _stream >> _blockSize;
- }
-
- if (_blockSize > 1 << 22) {
- close("Peer tried to send package larger than max package size!");
- return false;
- }
-
- if (_blockSize == 0) {
- close("Peer tried to send 0 byte package!");
- return false;
- }
-
- if (socket()->bytesAvailable() < _blockSize) {
- emit transferProgress(socket()->bytesAvailable(), _blockSize);
- return false;
- }
-
- emit transferProgress(_blockSize, _blockSize);
-
- _blockSize = 0;
-
- if (_useCompression) {
- QByteArray rawItem;
- _stream >> rawItem;
-
- int nbytes = rawItem.size();
- if (nbytes <= 4) {
- const char *data = rawItem.constData();
- if (nbytes < 4 || (data[0] != 0 || data[1] != 0 || data[2] != 0 || data[3] != 0)) {
- close("Peer sent corrupted compressed data!");
- return false;
- }
- }
-
- rawItem = qUncompress(rawItem);
-
- QDataStream itemStream(&rawItem, QIODevice::ReadOnly);
- itemStream.setVersion(QDataStream::Qt_4_2);
- itemStream >> item;
- }
- else {
- _stream >> item;
- }
-
- if (!item.isValid()) {
- close("Peer sent corrupt data: unable to load QVariant!");
- return false;
+ QVariantList list;
+ QVariantMap::const_iterator it = handshakeMsg.begin();
+ while (it != handshakeMsg.end()) {
+ list << it.key().toUtf8() << it.value();
+ ++it;