From 6f832f84419698dd02876e27c042793630d0a4df Mon Sep 17 00:00:00 2001 From: tpearson Date: Mon, 5 Sep 2011 16:18:22 +0000 Subject: =?UTF-8?q?Commit=20two=20patches=20to=20kdenetwork=20from=20Sl?= =?UTF-8?q?=C3=A1vek=20Banko:=201.)=20fix=20problem=20with=20html=20specia?= =?UTF-8?q?l=20chars=20(especially=20&)=20in=20messages=20from=20nowlisten?= =?UTF-8?q?ing=20plugin=20in=20kopete.=20Kopete::Message::RichText=20expec?= =?UTF-8?q?ts=20already=20escaped=20chars,=20but=20messages=20from=20nowli?= =?UTF-8?q?stening=20is=20plain=20text.=20With=20Kopete::Message::PlainTex?= =?UTF-8?q?t=20is=20message=20valid=202.)=20add=20pongserver,=20that=20add?= =?UTF-8?q?=20xep-0199=20responses=20to=20kopete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1251584 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kopete/plugins/nowlistening/nowlisteningplugin.cpp | 6 +-- .../jabber/libiris/iris/xmpp-im/client.cpp | 33 ++++++++++++++ .../jabber/libiris/iris/xmpp-im/xmpp_tasks.h | 50 ++++++++++++++-------- 3 files changed, 67 insertions(+), 22 deletions(-) (limited to 'kopete') diff --git a/kopete/plugins/nowlistening/nowlisteningplugin.cpp b/kopete/plugins/nowlistening/nowlisteningplugin.cpp index 902ea9d2..4c929a4c 100644 --- a/kopete/plugins/nowlistening/nowlisteningplugin.cpp +++ b/kopete/plugins/nowlistening/nowlisteningplugin.cpp @@ -172,14 +172,14 @@ void NowListeningPlugin::slotMediaCommand( const TQString &args, Kopete::ChatSes // prevent us sending an empty message advert = i18n("Message from Kopete user to another user; used when sending media information even though there are no songs playing or no media players running", "Now Listening for Kopete - it would tell you what I am listening to, if I was listening to something on a supported media player."); } - + Kopete::Message msg( theChat->myself(), theChat->members(), advert + " " + args, Kopete::Message::Outbound, - Kopete::Message::RichText + Kopete::Message::PlainText ); - + theChat->sendMessage( msg ); } diff --git a/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp b/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp index 9d5ee471..fcd73029 100644 --- a/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp +++ b/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp @@ -223,6 +223,7 @@ void Client::start(const TQString &host, const TQString &user, const TQString &p connect(pr, TQT_SIGNAL(roster(const Roster &)), TQT_SLOT(prRoster(const Roster &))); new JT_ServInfo(rootTask()); + new PongServer(rootTask()); d->active = true; } @@ -1520,3 +1521,35 @@ LiveRoster::ConstIterator LiveRoster::find(const Jid &j, bool compareRes) const } } + +//---------------------------------------------------------------------------- +// PongServer +//---------------------------------------------------------------------------- +/** + * \class PongServer + * \brief Answers XMPP Pings + */ + +PongServer::PongServer(Task *parent) +:Task(parent) +{ +} + +PongServer::~PongServer() +{ +} + +bool PongServer::take(const TQDomElement &e) +{ + if (e.tagName() != "iq" || e.attribute("type") != "get") + return false; + + bool found = false; + TQDomElement ping = findSubTag(e, "ping", &found); + if (found && ping.attribute("xmlns") == "urn:xmpp:ping") { + TQDomElement iq = createIQ(doc(), "result", e.attribute("from"), e.attribute("id")); + send(iq); + return true; + } + return false; +} diff --git a/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h b/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h index 97d68964..9a8041e9 100644 --- a/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h +++ b/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h @@ -263,7 +263,7 @@ namespace XMPP const Jid & jid() const; const VCard & vcard() const; - + void onGo(); bool take(const TQDomElement &x); @@ -405,15 +405,15 @@ namespace XMPP public: JT_DiscoItems(Task *); ~JT_DiscoItems(); - + void get(const Jid &, const TQString &node = TQString()); void get(const DiscoItem &); - + const DiscoList &items() const; - + void onGo(); bool take(const TQDomElement &); - + private: class Private; Private *d; @@ -426,17 +426,17 @@ namespace XMPP public: JT_DiscoInfo(Task *); ~JT_DiscoInfo(); - + void get(const Jid &, const TQString &node = TQString(), const DiscoItem::Identity = DiscoItem::Identity()); void get(const DiscoItem &); - + const DiscoItem &item() const; const Jid& jid() const; const TQString& node() const; - + void onGo(); bool take(const TQDomElement &); - + private: class Private; Private *d; @@ -445,16 +445,16 @@ namespace XMPP class JT_DiscoPublish : public Task { Q_OBJECT - TQ_OBJECT + TQ_OBJECT public: JT_DiscoPublish(Task *); ~JT_DiscoPublish(); - + void set(const Jid &, const DiscoList &); - + void onGo(); bool take(const TQDomElement &); - + private: class Private; Private *d; @@ -463,7 +463,7 @@ namespace XMPP class JT_MucPresence : public Task { Q_OBJECT - TQ_OBJECT + TQ_OBJECT public: JT_MucPresence(Task *parent); ~JT_MucPresence(); @@ -480,28 +480,40 @@ namespace XMPP class Private; Private *d; }; - + class JT_PrivateStorage : public Task { Q_OBJECT - TQ_OBJECT + TQ_OBJECT public: JT_PrivateStorage(Task *parent); ~JT_PrivateStorage(); void set(const TQDomElement &); void get(const TQString &tag, const TQString& xmlns); - + TQDomElement element(); void onGo(); bool take(const TQDomElement &); - + private: class Private; Private *d; }; - + + + class PongServer : public Task + { + Q_OBJECT + TQ_OBJECT + public: + PongServer(Task *); + ~PongServer(); + + bool take(const TQDomElement &); + }; + } #endif -- cgit v1.2.1