diff options
| author | Linus Jahn <lnj@kaidan.im> | 2019-10-21 17:01:03 +0200 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2019-10-23 12:13:18 +0200 |
| commit | dfec49b06fc305cc55631e5473b9ba19c729cd03 (patch) | |
| tree | 268083483bec5f41ce9b4dab1f0a9ece3f5258ed /src/client/QXmppClient.cpp | |
| parent | 91157d28b88ef3bab80100cd816c643809944a27 (diff) | |
| download | qxmpp-dfec49b06fc305cc55631e5473b9ba19c729cd03.tar.gz | |
Port away from deprecated client extension getters of the QXmppClient
This replaces the deprecated getters in the examples and in the
documentation.
Diffstat (limited to 'src/client/QXmppClient.cpp')
| -rw-r--r-- | src/client/QXmppClient.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/src/client/QXmppClient.cpp b/src/client/QXmppClient.cpp index deef3dbc..b71fd8e9 100644 --- a/src/client/QXmppClient.cpp +++ b/src/client/QXmppClient.cpp @@ -361,22 +361,31 @@ QXmppRosterManager& QXmppClient::rosterManager() /// is offline or not present in the roster, it will still send a message to /// the bareJid. /// +/// \note Usage of this method is discouraged because most modern clients use +/// carbon messages (XEP-0280: Message Carbons) and MAM (XEP-0313: Message +/// Archive Management) and so could possibly receive messages multiple times +/// or not receive them at all. +/// \c QXmppClient::sendPacket() should be used instead with a \c QXmppMessage. +/// /// \param bareJid bareJid of the receiving entity /// \param message Message string to be sent. void QXmppClient::sendMessage(const QString& bareJid, const QString& message) { - QStringList resources = rosterManager().getResources(bareJid); - if(!resources.isEmpty()) - { - for(int i = 0; i < resources.size(); ++i) - { - sendPacket(QXmppMessage("", bareJid + "/" + resources.at(i), message)); + QXmppRosterManager *rosterManager = findExtension<QXmppRosterManager>(); + + const QStringList resources = rosterManager + ? rosterManager->getResources(bareJid) + : QStringList(); + + if (!resources.isEmpty()) { + for (const auto &resource : resources) { + sendPacket( + QXmppMessage({}, bareJid + QStringLiteral("/") + resource, message) + ); } - } - else - { - sendPacket(QXmppMessage("", bareJid, message)); + } else { + sendPacket(QXmppMessage({}, bareJid, message)); } } |
