diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-12 09:48:06 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-08-12 09:48:06 +0000 |
| commit | a5e5e528343f3e41b5a09c4ec8361a0a50c00f3c (patch) | |
| tree | 60237bae4ac2a1abdf5c32d22210e8f8827baf82 /src | |
| parent | 31907f5fb90a8e8efcf487da948bfdf942324200 (diff) | |
| download | qxmpp-a5e5e528343f3e41b5a09c4ec8361a0a50c00f3c.tar.gz | |
move roster-specific code out of QXmppStream
Diffstat (limited to 'src')
| -rw-r--r-- | src/QXmppRosterManager.cpp | 23 | ||||
| -rw-r--r-- | src/QXmppStream.cpp | 23 | ||||
| -rw-r--r-- | src/QXmppStream.h | 4 |
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(); |
