diff options
| author | Linus Jahn <lnj@kaidan.im> | 2020-04-01 01:27:20 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2020-04-01 01:27:20 +0200 |
| commit | 03764c9abcd3c79873038935566f4e31a845ada9 (patch) | |
| tree | be9cfece301df46606ba6eef62dec3d60b5397b7 /src/client | |
| parent | 553b95576ee5cc3e74a47a221bdc2627de739cfe (diff) | |
| parent | 3ab1d34eceb8776193fe1cdc2070264d7dfbad30 (diff) | |
| download | qxmpp-03764c9abcd3c79873038935566f4e31a845ada9.tar.gz | |
Merge branch 'stable'
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/QXmppMessageReceiptManager.cpp | 2 | ||||
| -rw-r--r-- | src/client/QXmppRegistrationManager.cpp | 2 | ||||
| -rw-r--r-- | src/client/QXmppRosterManager.cpp | 4 | ||||
| -rw-r--r-- | src/client/QXmppVCardManager.cpp | 2 |
4 files changed, 8 insertions, 2 deletions
diff --git a/src/client/QXmppMessageReceiptManager.cpp b/src/client/QXmppMessageReceiptManager.cpp index 3b5c0159..27d96d11 100644 --- a/src/client/QXmppMessageReceiptManager.cpp +++ b/src/client/QXmppMessageReceiptManager.cpp @@ -64,7 +64,7 @@ bool QXmppMessageReceiptManager::handleStanza(const QDomElement &stanza) } // If requested, send a receipt. - if (message.isReceiptRequested() && !message.from().isEmpty() && !message.id().isEmpty()) { + if (message.isReceiptRequested() && !message.from().isEmpty() && !message.id().isEmpty() && message.type() != QXmppMessage::Error) { QXmppMessage receipt; receipt.setTo(message.from()); receipt.setReceiptId(message.id()); diff --git a/src/client/QXmppRegistrationManager.cpp b/src/client/QXmppRegistrationManager.cpp index d43a82e5..da220bf0 100644 --- a/src/client/QXmppRegistrationManager.cpp +++ b/src/client/QXmppRegistrationManager.cpp @@ -228,9 +228,11 @@ bool QXmppRegistrationManager::handleStanza(const QDomElement &stanza) case QXmppIq::Result: info(QStringLiteral("Successfully registered with the service.")); emit registrationSucceeded(); + break; case QXmppIq::Error: warning(QStringLiteral("Registering with the service failed: ").append(iq.error().text())); emit registrationFailed(iq.error()); + break; default: break; // should never occur } diff --git a/src/client/QXmppRosterManager.cpp b/src/client/QXmppRosterManager.cpp index 7bba45ec..9da4fd8f 100644 --- a/src/client/QXmppRosterManager.cpp +++ b/src/client/QXmppRosterManager.cpp @@ -282,6 +282,10 @@ bool QXmppRosterManager::renameItem(const QString &bareJid, const QString &name) QXmppRosterIq::Item item = d->entries.value(bareJid); item.setName(name); + // If there is a pending subscription, do not include the corresponding attribute in the stanza. + if (!item.subscriptionStatus().isEmpty()) + item.setSubscriptionStatus({}); + QXmppRosterIq iq; iq.setType(QXmppIq::Set); iq.addItem(item); diff --git a/src/client/QXmppVCardManager.cpp b/src/client/QXmppVCardManager.cpp index 8a1b4bab..039a82c3 100644 --- a/src/client/QXmppVCardManager.cpp +++ b/src/client/QXmppVCardManager.cpp @@ -113,7 +113,7 @@ bool QXmppVCardManager::handleStanza(const QDomElement& element) QXmppVCardIq vCardIq; vCardIq.parse(element); - if (vCardIq.from().isEmpty()) { + if (vCardIq.from().isEmpty() || vCardIq.from() == client()->configuration().jidBare()) { d->clientVCard = vCardIq; d->isClientVCardReceived = true; emit clientVCardReceived(); |
