]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: strip out AWSv4 signature calculation from RGWStreamIOBase.
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Tue, 26 Jul 2016 13:05:14 +0000 (15:05 +0200)
committerRadoslaw Zarzynski <rzarzynski@mirantis.com>
Fri, 21 Oct 2016 20:57:17 +0000 (22:57 +0200)
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
src/rgw/rgw_client_io.cc
src/rgw/rgw_client_io.h

index 659d31c0ae62dc8767a1180e3deb93acd4a76076..3aa518fd992f0b5b2375f5f23c5b6b233ba66742 100644 (file)
@@ -66,7 +66,7 @@ int RGWStreamIOBase::write(const char *buf, int len)
   }
 }
 
-int RGWStreamIOBase::read(char *buf, int max, int *actual, bool hash /* = false */)
+int RGWStreamIOBase::read(char *buf, int max, int *actual)
 {
   int ret = read_data(buf, max);
   if (ret < 0) {
@@ -89,16 +89,21 @@ int RGWStreamIO::write(const char* const buf, const int len)
   return ret;
 }
 
-int RGWStreamIO::read(char *buf, int max, int *actual, bool hash /* = false */)
+int RGWStreamIO::read(char *buf, int max, int *actual)
 {
-  int ret = RGWStreamIOBase::read(buf, max, actual, hash);
-  if (ret < 0) {
-    return ret;
+  const auto ret = RGWStreamIOBase::read(buf, max, actual);
+  if (ret >= 0) {
+    bytes_received += *actual;
   }
 
-  bytes_received += *actual;
+  return ret;
+}
+
+int RGWStreamIO::read(char *buf, int max, int *actual, bool hash /* = false */)
+{
+  const auto ret = read(buf, max, actual);
 
-  if (hash) {
+  if (ret >= 0 && hash) {
     if (!sha256_hash) {
       sha256_hash = calc_hash_sha256_open_stream();
     }
index f3fc1e245d403e7eafb8d59878856b2cfcaeb920..4adb6e2b775fefb671e29faecec80c58beedf2d4 100644 (file)
@@ -42,7 +42,7 @@ public:
   virtual int print(const char *format, ...);
   virtual int write(const char *buf, int len);
   virtual void flush() = 0;
-  virtual int read(char *buf, int max, int *actual, bool hash = false);
+  virtual int read(char *buf, int max, int *actual);
 
   virtual int send_status(int status, const char *status_name) = 0;
   virtual int send_100_continue() = 0;
@@ -73,7 +73,9 @@ public:
   }
 
   int write(const char *buf, int len) override;
-  int read(char *buf, int max, int *actual, bool hash = false) override;
+
+  int read(char *buf, int max, int *actual) override;
+  virtual int read(char *buf, int max, int *actual, bool hash);
 
   std::string grab_aws4_sha256_hash();