diff --git a/include/transport/transport.h b/include/transport/transport.h index 98b1cb61..010e2fbf 100644 --- a/include/transport/transport.h +++ b/include/transport/transport.h @@ -80,6 +80,8 @@ namespace Transport { /// \return Swift::StanzaChannel associated with this Transport::Component. Swift::StanzaChannel *getStanzaChannel(); + Swift::CapsInfo &getBuddyCapsInfo(); + /// Returns Swift::IQRouter associated with this Component. /// \return Swift::IQRouter associated with this Component. diff --git a/spectrum/src/sample.cfg b/spectrum/src/sample.cfg index eb28267b..005bb0bf 100644 --- a/spectrum/src/sample.cfg +++ b/spectrum/src/sample.cfg @@ -11,7 +11,7 @@ admin_password=test #cert=server.pfx #patch to PKCS#12 certificate #cert_password=test #password to that certificate if any users_per_backend=10 -backend=/home/hanzz/code/libtransport/backends/frotz/spectrum_frotz_backend +backend=/home/hanzz/code/libtransport/backends/libpurple/spectrum_libpurple_backend #backend=../../backends/libircclient-qt/spectrum_libircclient-qt_backend #protocol=prpl-msn protocol=any diff --git a/src/buddy.cpp b/src/buddy.cpp index 6f919429..fe7f906b 100644 --- a/src/buddy.cpp +++ b/src/buddy.cpp @@ -95,7 +95,8 @@ Swift::Presence::ref Buddy::generatePresenceStanza(int features, bool only_new) if (presence->getType() != Swift::Presence::Unavailable) { // caps -// presence->addPayload(boost::shared_ptr(new Swift::CapsInfo (CONFIG().caps))); + + presence->addPayload(boost::shared_ptr(new Swift::CapsInfo(m_rosterManager->getUser()->getComponent()->getBuddyCapsInfo()))); // if (features & 0/*TRANSPORT_FEATURE_AVATARS*/) { presence->addPayload(boost::shared_ptr(new Swift::VCardUpdate (getIconHash()))); diff --git a/src/discoinforesponder.cpp b/src/discoinforesponder.cpp index 3a8d2e8d..239ddf49 100644 --- a/src/discoinforesponder.cpp +++ b/src/discoinforesponder.cpp @@ -75,8 +75,9 @@ void DiscoInfoResponder::setBuddyFeatures(std::list &f) { } } - CapsInfoGenerator caps(""); - onBuddyCapsInfoChanged(caps.generateCapsInfo(m_buddyInfo)); + CapsInfoGenerator caps("spectrum"); + m_capsInfo = caps.generateCapsInfo(m_buddyInfo); + onBuddyCapsInfoChanged(m_capsInfo); } bool DiscoInfoResponder::handleGetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr info) { diff --git a/src/discoinforesponder.h b/src/discoinforesponder.h index b6cf9e84..7e374702 100644 --- a/src/discoinforesponder.h +++ b/src/discoinforesponder.h @@ -40,12 +40,17 @@ class DiscoInfoResponder : public Swift::GetResponder { boost::signal onBuddyCapsInfoChanged; + Swift::CapsInfo &getBuddyCapsInfo() { + return m_capsInfo; + } + private: virtual bool handleGetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr payload); Swift::DiscoInfo m_transportInfo; Swift::DiscoInfo m_buddyInfo; Config *m_config; + Swift::CapsInfo m_capsInfo; }; } \ No newline at end of file diff --git a/src/transport.cpp b/src/transport.cpp index ff511908..f451a818 100644 --- a/src/transport.cpp +++ b/src/transport.cpp @@ -157,6 +157,10 @@ void Component::setTransportFeatures(std::list &features) { m_discoInfoResponder->setTransportFeatures(features); } +Swift::CapsInfo &Component::getBuddyCapsInfo() { + return m_discoInfoResponder->getBuddyCapsInfo(); +} + void Component::setBuddyFeatures(std::list &features) { // TODO: handle caps change m_discoInfoResponder->setBuddyFeatures(features);