File kopete_jabber_pongserver.diff of Package kdenetwork3

diff -ruN kdenetwork-3.5.10.orig/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp kdenetwork-3.5.10/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp
--- kdenetwork-3.5.10.orig/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp	2006-10-01 19:26:43.000000000 +0200
+++ kdenetwork-3.5.10/kopete/protocols/jabber/libiris/iris/xmpp-im/client.cpp	2009-09-12 17:03:20.989765315 +0200
@@ -223,6 +223,7 @@
 	connect(pr, SIGNAL(roster(const Roster &)), SLOT(prRoster(const Roster &)));
 
 	new JT_ServInfo(rootTask());
+	new PongServer(rootTask());
 
 	d->active = true;
 }
diff -ruN kdenetwork-3.5.10.orig/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.cpp kdenetwork-3.5.10/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.cpp
--- kdenetwork-3.5.10.orig/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.cpp	2006-10-01 19:26:43.000000000 +0200
+++ kdenetwork-3.5.10/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.cpp	2009-09-12 18:25:35.355388942 +0200
@@ -2118,3 +2118,34 @@
 	return d->elem;
 }
 
+//----------------------------------------------------------------------------
+// PongServer
+//----------------------------------------------------------------------------
+/**
+ * \class PongServer
+ * \brief Answers XMPP Pings
+ */
+
+PongServer::PongServer(Task *parent)
+:Task(parent)
+{
+}
+
+PongServer::~PongServer()
+{
+}
+
+bool PongServer::take(const QDomElement &e)
+{
+	if (e.tagName() != "iq" || e.attribute("type") != "get")
+		return false;
+
+	bool found = false;
+	QDomElement ping = findSubTag(e, "ping", &found);
+	if (found && ping.attribute("xmlns") == "urn:xmpp:ping") {
+		QDomElement iq = createIQ(doc(), "result", e.attribute("from"), e.attribute("id"));
+		send(iq);
+		return true;
+	}
+	return false;
+}
diff -ruN kdenetwork-3.5.10.orig/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h kdenetwork-3.5.10/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h
--- kdenetwork-3.5.10.orig/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h	2006-10-01 19:26:43.000000000 +0200
+++ kdenetwork-3.5.10/kopete/protocols/jabber/libiris/iris/xmpp-im/xmpp_tasks.h	2009-09-12 18:24:57.729539379 +0200
@@ -456,6 +456,15 @@
 		Private *d;
 	};
 	
+	class PongServer : public Task
+	{
+		Q_OBJECT
+	public:
+		PongServer(Task *);
+		~PongServer();
+
+		bool take(const QDomElement &);
+	};
 }
 
 #endif

openSUSE Build Service is sponsored by