From c396be83d17a4335959797b3859906e77deded10 Mon Sep 17 00:00:00 2001 From: Gaston Dombiak Date: Sun, 19 Sep 2004 16:20:10 +0000 Subject: [PATCH] Allows a disco#info packet to include a dataform. SMACK-153 git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@2382 b35dd754-fafc-0310-a699-88a17e54d16e --- source/org/jivesoftware/smackx/packet/DiscoverInfo.java | 2 ++ .../smackx/provider/DiscoverInfoProvider.java | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/source/org/jivesoftware/smackx/packet/DiscoverInfo.java b/source/org/jivesoftware/smackx/packet/DiscoverInfo.java index 38ebd6141..63a5af676 100644 --- a/source/org/jivesoftware/smackx/packet/DiscoverInfo.java +++ b/source/org/jivesoftware/smackx/packet/DiscoverInfo.java @@ -180,6 +180,8 @@ public class DiscoverInfo extends IQ { buf.append(feature.toXML()); } } + // Add packet extensions, if any are defined. + buf.append(getExtensionsXML()); buf.append(""); return buf.toString(); } diff --git a/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java b/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java index 44d88a69f..880d81266 100644 --- a/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java +++ b/source/org/jivesoftware/smackx/provider/DiscoverInfoProvider.java @@ -54,6 +54,7 @@ package org.jivesoftware.smackx.provider; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.provider.IQProvider; +import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smackx.packet.DiscoverInfo; import org.xmlpull.v1.XmlPullParser; @@ -83,10 +84,15 @@ public class DiscoverInfoProvider implements IQProvider { name = parser.getAttributeValue("", "name"); type = parser.getAttributeValue("", "type"); } - if (parser.getName().equals("feature")) { + else if (parser.getName().equals("feature")) { // Initialize the variables from the parsed XML variable = parser.getAttributeValue("", "var"); } + // Otherwise, it must be a packet extension. + else { + discoverInfo.addExtension(PacketParserUtils.parsePacketExtension(parser + .getName(), parser.getNamespace(), parser)); + } } else if (eventType == XmlPullParser.END_TAG) { if (parser.getName().equals("identity")) { // Create a new identity and add it to the discovered info.