diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-11-16 19:32:48 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-11-16 19:32:48 (GMT) | 
| commit | 2c5ef44b56d9c45254ea331a53fb6d8fe6efe7d1 (patch) | |
| tree | e6e63729cbde4a894627a381af8dd6c4f7557a78 | |
| parent | 999f19158672bd6c91fa274a9f8e968b84f8a931 (diff) | |
| download | swift-2c5ef44b56d9c45254ea331a53fb6d8fe6efe7d1.zip swift-2c5ef44b56d9c45254ea331a53fb6d8fe6efe7d1.tar.bz2 | |
Added In-band-registration unsubscribe support to Swiften.
3 files changed, 17 insertions, 2 deletions
| diff --git a/Swiften/Elements/InBandRegistrationPayload.h b/Swiften/Elements/InBandRegistrationPayload.h index 6dafa04..1a293ba 100644 --- a/Swiften/Elements/InBandRegistrationPayload.h +++ b/Swiften/Elements/InBandRegistrationPayload.h @@ -18,7 +18,7 @@ namespace Swift {  		public:  			typedef boost::shared_ptr<InBandRegistrationPayload> ref; -			InBandRegistrationPayload() : registered(false) {} +			InBandRegistrationPayload() : registered(false), remove(false) {}  			Form::ref getForm() const { return form; }  			void setForm(Form::ref f) { form = f; } @@ -31,6 +31,14 @@ namespace Swift {  				registered = b;  			} +			bool isRemove() const { +				return remove; +			} + +			void setRemove(bool b) { +				remove = b; +			} +  			const boost::optional<String>& getInstructions() const {  				return instructions;  			} @@ -175,10 +183,10 @@ namespace Swift {  				this->key = v;  			} -  		private:  			Form::ref form;  			bool registered; +			bool remove;  			boost::optional<String> instructions;  			boost::optional<String> username;  			boost::optional<String> nick; diff --git a/Swiften/Parser/PayloadParsers/InBandRegistrationPayloadParser.cpp b/Swiften/Parser/PayloadParsers/InBandRegistrationPayloadParser.cpp index 0e1b593..5a9b3d8 100644 --- a/Swiften/Parser/PayloadParsers/InBandRegistrationPayloadParser.cpp +++ b/Swiften/Parser/PayloadParsers/InBandRegistrationPayloadParser.cpp @@ -56,6 +56,9 @@ void InBandRegistrationPayloadParser::handleEndElement(const String& element, co  		else if (element == "registered") {  			getPayloadInternal()->setRegistered(true);  		} +		else if (element == "remove") { +			getPayloadInternal()->setRemove(true); +		}  		else if (element == "instructions") {  			getPayloadInternal()->setInstructions(currentText);  		} diff --git a/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp b/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp index 8e8bcf2..5729df6 100644 --- a/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp +++ b/Swiften/Serializer/PayloadSerializers/InBandRegistrationPayloadSerializer.cpp @@ -25,6 +25,10 @@ String InBandRegistrationPayloadSerializer::serializePayload(boost::shared_ptr<I  		registerElement.addNode(XMLElement::ref(new XMLElement("registered")));  	} +	if (registration->isRemove()) { +		registerElement.addNode(XMLElement::ref(new XMLElement("remove"))); +	} +  	if (registration->getInstructions()) {  		registerElement.addNode(XMLElement::ref(new XMLElement("instructions", "", *registration->getInstructions())));  	} | 
 Swift
 Swift