aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-03-14 23:17:55 +0100
committerLinus Jahn <lnj@kaidan.im>2023-03-14 23:31:51 +0100
commit7bfb39fe1eb853a95929c16a2692cbb648d7387c (patch)
tree75605946a10061f85e547458e12a48e224fbd241
parent054b35de3ea9251ca713209ea73b2b814fb6c0bc (diff)
Client: Don't fill empty 'to' attributes of outgoing IQs
-rw-r--r--src/base/QXmppStream.cpp4
-rw-r--r--src/base/QXmppStream.h2
-rw-r--r--src/client/QXmppOutgoingClient.cpp7
3 files changed, 5 insertions, 8 deletions
diff --git a/src/base/QXmppStream.cpp b/src/base/QXmppStream.cpp
index 428e8e55..a4921a43 100644
--- a/src/base/QXmppStream.cpp
+++ b/src/base/QXmppStream.cpp
@@ -208,7 +208,7 @@ QXmppTask<QXmpp::SendResult> QXmppStream::send(QXmppPacket &&packet, bool &writt
///
/// \since QXmpp 1.5
///
-QXmppTask<QXmppStream::IqResult> QXmppStream::sendIq(QXmppIq &&iq)
+QXmppTask<QXmppStream::IqResult> QXmppStream::sendIq(QXmppIq &&iq, const QString &to)
{
using namespace QXmpp;
@@ -223,7 +223,7 @@ QXmppTask<QXmppStream::IqResult> QXmppStream::sendIq(QXmppIq &&iq)
iq.setId(QXmppUtils::generateStanzaUuid());
}
- return sendIq(QXmppPacket(iq), iq.id(), iq.to());
+ return sendIq(QXmppPacket(iq), iq.id(), to);
}
///
diff --git a/src/base/QXmppStream.h b/src/base/QXmppStream.h
index 55dc7967..a7584366 100644
--- a/src/base/QXmppStream.h
+++ b/src/base/QXmppStream.h
@@ -47,7 +47,7 @@ public:
QXmppTask<QXmpp::SendResult> send(QXmppPacket &&);
using IqResult = std::variant<QDomElement, QXmppError>;
- QXmppTask<IqResult> sendIq(QXmppIq &&);
+ QXmppTask<IqResult> sendIq(QXmppIq &&, const QString &to);
QXmppTask<IqResult> sendIq(QXmppPacket &&, const QString &id, const QString &to);
void cancelOngoingIqs();
bool hasIqId(const QString &id) const;
diff --git a/src/client/QXmppOutgoingClient.cpp b/src/client/QXmppOutgoingClient.cpp
index 20e88b9c..53c02e41 100644
--- a/src/client/QXmppOutgoingClient.cpp
+++ b/src/client/QXmppOutgoingClient.cpp
@@ -328,11 +328,8 @@ bool QXmppOutgoingClient::isStreamResumed() const
///
QXmppTask<QXmppStream::IqResult> QXmppOutgoingClient::sendIq(QXmppIq &&iq)
{
- // always set a to address (the QXmppStream needs this for matching)
- if (iq.to().isEmpty()) {
- iq.setTo(d->config.domain());
- }
- return QXmppStream::sendIq(std::move(iq));
+ auto to = iq.to();
+ return QXmppStream::sendIq(std::move(iq), to.isEmpty() ? d->config.domain() : to);
}
void QXmppOutgoingClient::_q_socketDisconnected()