fixed YACReaderLibrary <-> YACReader communication when ComicInfo is too large

This commit is contained in:
Luis Ángel San Martín
2013-12-16 22:55:46 +01:00
parent a27490ab83
commit 7e69e94b82
2 changed files with 27 additions and 15 deletions

View File

@ -35,12 +35,12 @@ bool YACReaderLocalClient::requestComicInfo(quint64 libraryId, ComicDB & comic,
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_8);
out << (quint16)0;
out << (quint32)0;
out << (quint8)YACReader::RequestComicInfo;
out << libraryId;
out << comic;
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
out << (quint32)(block.size() - sizeof(quint32));
int written = 0;
int tries = 0;
@ -58,7 +58,7 @@ bool YACReaderLocalClient::requestComicInfo(quint64 libraryId, ComicDB & comic,
//QByteArray data;
tries = 0;
while(localSocket->bytesAvailable() < sizeof(quint16) && tries < 10)
while(localSocket->bytesAvailable() < sizeof(quint32) && tries < 10)
{
localSocket->waitForReadyRead(100);
tries++;
@ -68,9 +68,9 @@ bool YACReaderLocalClient::requestComicInfo(quint64 libraryId, ComicDB & comic,
localSocket->close();
return false;
}
QDataStream sizeStream(localSocket->read(sizeof(quint16)));
QDataStream sizeStream(localSocket->read(sizeof(quint32)));
sizeStream.setVersion(QDataStream::Qt_4_8);
quint16 totalSize = 0;
quint32 totalSize = 0;
sizeStream >> totalSize;
QByteArray data;
@ -107,12 +107,12 @@ bool YACReaderLocalClient::sendComicInfo(quint64 libraryId, ComicDB & comic)
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_8);
out << (quint16)0;
out << (quint32)0;
out << (quint8)YACReader::SendComicInfo;
out << libraryId;
out << comic;
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
out << (quint32)(block.size() - sizeof(quint32));
int written = 0;
int tries = 0;