summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/httpserver/S3Client.cpp24
-rw-r--r--lib/httpserver/S3Client.h1
2 files changed, 24 insertions, 1 deletions
diff --git a/lib/httpserver/S3Client.cpp b/lib/httpserver/S3Client.cpp
index 59044573..c9202d36 100644
--- a/lib/httpserver/S3Client.cpp
+++ b/lib/httpserver/S3Client.cpp
@@ -245,4 +245,26 @@ HTTPResponse S3Client::SendRequest(HTTPRequest& rRequest,
}
return response;
-}
+}
+
+// --------------------------------------------------------------------------
+//
+// Function
+// Name: S3Client::CheckResponse(HTTPResponse&,
+// std::string& message)
+// Purpose: Check the status code of an Amazon S3 response, and
+// throw an exception with a useful message (including
+// the supplied message) if it's not a 200 OK response.
+// Created: 26/07/15
+//
+// --------------------------------------------------------------------------
+
+void S3Client::CheckResponse(const HTTPResponse& response, const std::string& message) const
+{
+ if(response.GetResponseCode() != HTTPResponse::Code_OK)
+ {
+ THROW_EXCEPTION_MESSAGE(HTTPException, RequestFailedUnexpectedly,
+ message);
+ }
+}
+
diff --git a/lib/httpserver/S3Client.h b/lib/httpserver/S3Client.h
index 3c4126ac..2d3f71cf 100644
--- a/lib/httpserver/S3Client.h
+++ b/lib/httpserver/S3Client.h
@@ -51,6 +51,7 @@ class S3Client
HTTPResponse GetObject(const std::string& rObjectURI);
HTTPResponse PutObject(const std::string& rObjectURI,
IOStream& rStreamToSend, const char* pContentType = NULL);
+ void CheckResponse(const HTTPResponse& response, const std::string& message) const;
private:
HTTPServer* mpSimulator;