From: Radoslaw Zarzynski Date: Tue, 26 Jul 2016 13:05:14 +0000 (+0200) Subject: rgw: strip out AWSv4 signature calculation from RGWStreamIOBase. X-Git-Tag: v11.1.0~454^2~61 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=63dd8184182b1a8509c8006fc43142771c4364b4;p=ceph.git rgw: strip out AWSv4 signature calculation from RGWStreamIOBase. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/rgw/rgw_client_io.cc b/src/rgw/rgw_client_io.cc index 659d31c0ae6..3aa518fd992 100644 --- a/src/rgw/rgw_client_io.cc +++ b/src/rgw/rgw_client_io.cc @@ -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(); } diff --git a/src/rgw/rgw_client_io.h b/src/rgw/rgw_client_io.h index f3fc1e245d4..4adb6e2b775 100644 --- a/src/rgw/rgw_client_io.h +++ b/src/rgw/rgw_client_io.h @@ -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();