summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-11-12 19:02:41 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-11-12 19:02:41 (GMT)
commitee57df7619725e93efa5a6475282e7dc5a7fb6e7 (patch)
tree1dc1b5bfd4ca8a4ea1c02a06599275c245fd1a3f /Swiften/Queries/Request.cpp
parentfdd8755e2363e8d706a3d0bdc2e71f234abdf829 (diff)
downloadswift-ee57df7619725e93efa5a6475282e7dc5a7fb6e7.zip
swift-ee57df7619725e93efa5a6475282e7dc5a7fb6e7.tar.bz2
Retrieve correct error in Request.
Diffstat (limited to 'Swiften/Queries/Request.cpp')
-rw-r--r--Swiften/Queries/Request.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/Swiften/Queries/Request.cpp b/Swiften/Queries/Request.cpp
index 18446ae..ce9f763 100644
--- a/Swiften/Queries/Request.cpp
+++ b/Swiften/Queries/Request.cpp
@@ -38,8 +38,13 @@ bool Request::handleIQ(boost::shared_ptr<IQ> iq) {
handleResponse(iq->getPayloadOfSameType(payload_), boost::optional<ErrorPayload>());
}
else {
- // FIXME: Get proper error
- handleResponse(boost::shared_ptr<Payload>(), boost::optional<ErrorPayload>(ErrorPayload::UndefinedCondition));
+ boost::shared_ptr<ErrorPayload> errorPayload = iq->getPayload<ErrorPayload>();
+ if (errorPayload) {
+ handleResponse(boost::shared_ptr<Payload>(), boost::optional<ErrorPayload>(*errorPayload));
+ }
+ else {
+ handleResponse(boost::shared_ptr<Payload>(), boost::optional<ErrorPayload>(ErrorPayload::UndefinedCondition));
+ }
}
router_->removeHandler(this);
handled = true;