fix(QAmqpClient): simulate closeOk on forced disconnect

This commit is contained in:
Matt Broadstone 2015-11-19 17:03:55 -05:00
parent 73d80de53a
commit c113611b05
1 changed files with 10 additions and 4 deletions

View File

@ -464,17 +464,23 @@ void QAmqpClientPrivate::close(const QAmqpMethodFrame &frame)
stream >> classId;
stream >> methodId;
qAmqpDebug(">> code: %d", code);
qAmqpDebug(">> text: %s", qPrintable(text));
qAmqpDebug(">> class-id: %d", classId);
qAmqpDebug(">> method-id: %d", methodId);
QAMQP::Error checkError = static_cast<QAMQP::Error>(code);
if (checkError != QAMQP::NoError) {
error = checkError;
errorString = qPrintable(text);
Q_EMIT q->error(error);
// if it was a force disconnect, simulate receiving a closeOk
if (checkError == QAMQP::ConnectionForcedError) {
return closeOk(QAmqpMethodFrame());
}
}
qAmqpDebug(">> code: %d", code);
qAmqpDebug(">> text: %s", qPrintable(text));
qAmqpDebug(">> class-id: %d", classId);
qAmqpDebug(">> method-id: %d", methodId);
connected = false;
Q_EMIT q->disconnected();