summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Parser/PayloadParsers/DiscoItemsParser.cpp')
-rw-r--r--Swiften/Parser/PayloadParsers/DiscoItemsParser.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/DiscoItemsParser.cpp b/Swiften/Parser/PayloadParsers/DiscoItemsParser.cpp
index d6ac94d..a56dc5a 100644
--- a/Swiften/Parser/PayloadParsers/DiscoItemsParser.cpp
+++ b/Swiften/Parser/PayloadParsers/DiscoItemsParser.cpp
@@ -11,18 +11,23 @@ namespace Swift {
DiscoItemsParser::DiscoItemsParser() : level_(TopLevel) {
}
void DiscoItemsParser::handleStartElement(const std::string& element, const std::string&, const AttributeMap& attributes) {
if (level_ == PayloadLevel) {
if (element == "item") {
getPayloadInternal()->addItem(DiscoItems::Item(attributes.getAttribute("name"), JID(attributes.getAttribute("jid")), attributes.getAttribute("node")));
}
}
+ else if (level_ == TopLevel) {
+ if (element == "query") {
+ getPayloadInternal()->setNode(attributes.getAttribute("node"));
+ }
+ }
++level_;
}
void DiscoItemsParser::handleEndElement(const std::string&, const std::string&) {
--level_;
}
void DiscoItemsParser::handleCharacterData(const std::string&) {
}