From d0adbddc0ba7f17e849f1a0972ff4e80e10e9f56 2011-09-15 23:57:43 From: HanzZ Date: 2011-09-15 23:57:43 Subject: [PATCH] send caps info in presences --- diff --git a/include/transport/transport.h b/include/transport/transport.h index 98b1cb61a1668540990be19996baf7173a0d0fd6..010e2fbf783e0f1f334560ee3303a82ed1691dad 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 eb28267b72653106177079696a9cb9beca2d36f5..005bb0bf2bb446d8eafc53c77203568526eeec0a 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 6f9194295470f64b40be1a5756c59df04ae14a7f..fe7f906becdd2839433fd36fba036a7a6f5e38a6 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 3a8d2e8db666fe3ed10cce747c59d8fe92317d1c..239ddf49be39b369f419890833d4327b5beba241 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 b6cf9e847970a9449f2e4a60b33ea670e442e815..7e3747025456904c260e7ca4c8b165f030710b84 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 ff511908965e3db5a9450e4e2f6ada2f6fa21277..f451a818e62be3143d9067406f69928876d041cf 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);