diff options
| -rw-r--r-- | Swiften/Elements/IQ.cpp | 12 | ||||
| -rw-r--r-- | Swiften/Elements/IQ.h | 6 | ||||
| -rw-r--r-- | Swiften/Queries/Responder.h | 8 | 
3 files changed, 16 insertions, 10 deletions
| diff --git a/Swiften/Elements/IQ.cpp b/Swiften/Elements/IQ.cpp index 8e6d7cc..8c0f692 100644 --- a/Swiften/Elements/IQ.cpp +++ b/Swiften/Elements/IQ.cpp @@ -44,20 +44,24 @@ boost::shared_ptr<IQ> IQ::createResult(const JID& to, const JID& from, const std  	return iq;  } -boost::shared_ptr<IQ> IQ::createError(const JID& to, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type) { +boost::shared_ptr<IQ> IQ::createError(const JID& to, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type, boost::shared_ptr<Payload> payload) {  	boost::shared_ptr<IQ> iq = boost::make_shared<IQ>(IQ::Error);  	iq->setTo(to);  	iq->setID(id); -	iq->addPayload(boost::make_shared<Swift::ErrorPayload>(condition, type)); +	boost::shared_ptr<ErrorPayload> errorPayload = boost::make_shared<Swift::ErrorPayload>(condition, type); +	errorPayload->setPayload(payload); +	iq->addPayload(errorPayload);  	return iq;  } -boost::shared_ptr<IQ> IQ::createError(const JID& to, const JID& from, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type) { +boost::shared_ptr<IQ> IQ::createError(const JID& to, const JID& from, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type, boost::shared_ptr<Payload> payload) {  	boost::shared_ptr<IQ> iq = boost::make_shared<IQ>(IQ::Error);  	iq->setTo(to);  	iq->setFrom(from);  	iq->setID(id); -	iq->addPayload(boost::make_shared<Swift::ErrorPayload>(condition, type)); +	boost::shared_ptr<ErrorPayload> errorPayload = boost::make_shared<Swift::ErrorPayload>(condition, type); +	errorPayload->setPayload(payload); +	iq->addPayload(errorPayload);  	return iq;  } diff --git a/Swiften/Elements/IQ.h b/Swiften/Elements/IQ.h index 05cd96a..99561f8 100644 --- a/Swiften/Elements/IQ.h +++ b/Swiften/Elements/IQ.h @@ -41,13 +41,15 @@ namespace Swift {  					const JID& to,  					const std::string& id,  					ErrorPayload::Condition condition = ErrorPayload::BadRequest, -					ErrorPayload::Type type = ErrorPayload::Cancel); +					ErrorPayload::Type type = ErrorPayload::Cancel, +					boost::shared_ptr<Payload> payload = boost::shared_ptr<Payload>());  			static boost::shared_ptr<IQ> createError(  					const JID& to,  					const JID& from,  					const std::string& id,  					ErrorPayload::Condition condition = ErrorPayload::BadRequest, -					ErrorPayload::Type type = ErrorPayload::Cancel); +					ErrorPayload::Type type = ErrorPayload::Cancel, +					boost::shared_ptr<Payload> payload = boost::shared_ptr<Payload>());  		private:  			Type type_; diff --git a/Swiften/Queries/Responder.h b/Swiften/Queries/Responder.h index 2ba9c24..edcaa52 100644 --- a/Swiften/Queries/Responder.h +++ b/Swiften/Queries/Responder.h @@ -83,15 +83,15 @@ namespace Swift {  			/**  			 * Convenience function for responding with an error.  			 */ -			void sendError(const JID& to, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type) { -				router_->sendIQ(IQ::createError(to, id, condition, type)); +			void sendError(const JID& to, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type, Payload::ref payload = Payload::ref()) { +				router_->sendIQ(IQ::createError(to, id, condition, type, payload));  			}  			/**  			 * Convenience function for responding with an error from a specific from address.  			 */ -			void sendError(const JID& to, const JID& from, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type) { -				router_->sendIQ(IQ::createError(to, from, id, condition, type)); +			void sendError(const JID& to, const JID& from, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type, Payload::ref payload = Payload::ref()) { +				router_->sendIQ(IQ::createError(to, from, id, condition, type, payload));  			}  			IQRouter* getIQRouter() const { | 
 Swift
 Swift