diff options
Diffstat (limited to 'Swiften/Parser/PayloadParsers/RosterParser.cpp')
| -rw-r--r-- | Swiften/Parser/PayloadParsers/RosterParser.cpp | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/Swiften/Parser/PayloadParsers/RosterParser.cpp b/Swiften/Parser/PayloadParsers/RosterParser.cpp index ba19fbf..53c433a 100644 --- a/Swiften/Parser/PayloadParsers/RosterParser.cpp +++ b/Swiften/Parser/PayloadParsers/RosterParser.cpp @@ -4,8 +4,11 @@   * See Documentation/Licenses/GPLv3.txt for more information.   */ -#include "Swiften/Parser/PayloadParsers/RosterParser.h" -#include "Swiften/Parser/SerializingParser.h" +#include <Swiften/Parser/PayloadParsers/RosterParser.h> + +#include <boost/optional.hpp> + +#include <Swiften/Parser/SerializingParser.h>  namespace Swift { @@ -13,7 +16,13 @@ RosterParser::RosterParser() : level_(TopLevel), inItem_(false), unknownContentP  }  void RosterParser::handleStartElement(const std::string& element, const std::string& ns, const AttributeMap& attributes) { -	if (level_ == PayloadLevel) { +	if (level_ == TopLevel) { +		boost::optional<std::string> ver = attributes.getAttributeValue("ver"); +		if (ver) { +			getPayloadInternal()->setVersion(*ver); +		} +	} +	else if (level_ == PayloadLevel) {  		if (element == "item") {  			inItem_ = true;  			currentItem_ = RosterItemPayload(); | 
 Swift
 Swift