correctly retrieve latest archived messages per XEP-0313

This commit is contained in:
shunf4 2021-10-06 23:01:11 +08:00
parent 8b3752ef47
commit a24e8382d1
1 changed files with 8 additions and 0 deletions

View File

@ -469,6 +469,14 @@ void Core::Account::onContactNeedHistory(const QString& before, const QString& a
query.setAfter(after);
}
}
if (before.size() == 0 && after.size() == 0) {
// https://xmpp.org/extensions/xep-0313.html#sect-idm46556759682304
// To request the page at the end of the archive
// (i.e. the most recent messages), include just an
// empty <before/> element in the RSM part of the query.
// As defined by RSM, this will return the last page of the archive.
query.setBefore("");
}
qDebug() << "Remote query for" << contact->jid << "from" << after << ", to" << before;
}