aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-08-12 09:48:06 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-08-12 09:48:06 +0000
commita5e5e528343f3e41b5a09c4ec8361a0a50c00f3c (patch)
tree60237bae4ac2a1abdf5c32d22210e8f8827baf82 /src
parent31907f5fb90a8e8efcf487da948bfdf942324200 (diff)
downloadqxmpp-a5e5e528343f3e41b5a09c4ec8361a0a50c00f3c.tar.gz
move roster-specific code out of QXmppStream
Diffstat (limited to 'src')
-rw-r--r--src/QXmppRosterManager.cpp23
-rw-r--r--src/QXmppStream.cpp23
-rw-r--r--src/QXmppStream.h4
3 files changed, 18 insertions, 32 deletions
diff --git a/src/QXmppRosterManager.cpp b/src/QXmppRosterManager.cpp
index 0da3475b..420dd78b 100644
--- a/src/QXmppRosterManager.cpp
+++ b/src/QXmppRosterManager.cpp
@@ -95,7 +95,12 @@ void QXmppRosterManager::presenceReceived(const QXmppPresence& presence)
break;
case QXmppPresence::Subscribe:
if (m_stream->configuration().autoAcceptSubscriptions())
- m_stream->acceptSubscriptionRequest(jid);
+ {
+ QXmppPresence presence;
+ presence.setTo(jid);
+ presence.setType(QXmppPresence::Subscribed);
+ m_stream->sendPacket(presence);
+ }
break;
default:
break;
@@ -116,7 +121,7 @@ void QXmppRosterManager::rosterIqReceived(const QXmppRosterIq& rosterIq)
m_stream->sendPacket(returnIq);
// store updated entries and notify changes
- QList<QXmppRosterIq::Item> items = rosterIq.items();
+ const QList<QXmppRosterIq::Item> items = rosterIq.items();
for (int i = 0; i < items.count(); i++)
{
QString bareJid = items.at(i).bareJid();
@@ -128,10 +133,16 @@ void QXmppRosterManager::rosterIqReceived(const QXmppRosterIq& rosterIq)
// then after recieving following iq user requests contact for subscription
// check the "from" is newly added in the roster...and remove this ask thing...and do this for all items
- if(rosterIq.items().at(0).subscriptionType() ==
- QXmppRosterIq::Item::From && rosterIq.items().at(0).
- subscriptionStatus().isEmpty())
- m_stream->sendSubscriptionRequest(rosterIq.items().at(0).bareJid());
+ QXmppRosterIq::Item item = items.at(0);
+ if (!item.bareJid().isEmpty() &&
+ item.subscriptionType() == QXmppRosterIq::Item::From &&
+ item.subscriptionStatus().isEmpty())
+ {
+ QXmppPresence presence;
+ presence.setTo(item.bareJid());
+ presence.setType(QXmppPresence::Subscribe);
+ m_stream->sendPacket(presence);
+ }
}
break;
case QXmppIq::Result:
diff --git a/src/QXmppStream.cpp b/src/QXmppStream.cpp
index 6eb1243e..589cb1c9 100644
--- a/src/QXmppStream.cpp
+++ b/src/QXmppStream.cpp
@@ -978,29 +978,6 @@ void QXmppStream::sendSessionIQ()
sendPacket(session);
}
-void QXmppStream::acceptSubscriptionRequest(const QString& from, bool accept)
-{
- QXmppPresence presence;
- presence.setTo(from);
- if(accept)
- presence.setType(QXmppPresence::Subscribed);
- else
- presence.setType(QXmppPresence::Unsubscribed);
-
- sendPacket(presence);
-}
-
-void QXmppStream::sendSubscriptionRequest(const QString& to)
-{
- if(to.isEmpty())
- return;
-
- QXmppPresence presence;
- presence.setTo(to);
- presence.setType(QXmppPresence::Subscribe);
- sendPacket(presence);
-}
-
void QXmppStream::disconnect()
{
d->authStep = 0;
diff --git a/src/QXmppStream.h b/src/QXmppStream.h
index 384c7a90..79d4802c 100644
--- a/src/QXmppStream.h
+++ b/src/QXmppStream.h
@@ -67,10 +67,9 @@ public:
QXmppStream(QSslSocket *socket, QObject *parent);
~QXmppStream();
void connect();
- void acceptSubscriptionRequest(const QString& from, bool accept = true);
- void sendSubscriptionRequest(const QString& to);
void disconnect();
bool isConnected() const;
+ bool sendData(const QByteArray&);
bool sendPacket(const QXmppPacket&);
QAbstractSocket::SocketError socketError();
@@ -133,7 +132,6 @@ signals:
protected:
virtual void handleStanza(const QDomElement &element);
virtual void handleStream(const QDomElement &element);
- bool sendData(const QByteArray&);
private slots:
void socketHostFound();