diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-11-12 19:02:41 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-11-12 19:02:41 (GMT) |
commit | ee57df7619725e93efa5a6475282e7dc5a7fb6e7 (patch) | |
tree | 1dc1b5bfd4ca8a4ea1c02a06599275c245fd1a3f /Swiften/Queries/Request.cpp | |
parent | fdd8755e2363e8d706a3d0bdc2e71f234abdf829 (diff) | |
download | swift-contrib-ee57df7619725e93efa5a6475282e7dc5a7fb6e7.zip swift-contrib-ee57df7619725e93efa5a6475282e7dc5a7fb6e7.tar.bz2 |
Retrieve correct error in Request.
Diffstat (limited to 'Swiften/Queries/Request.cpp')
-rw-r--r-- | Swiften/Queries/Request.cpp | 9 |
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; |