// TODO: set REMOTE_USER if authenticated
}
-std::size_t RGWAsioClientIO::write_data(const char* const buf,
- const std::size_t len)
+size_t RGWAsioClientIO::write_data(const char* const buf,
+ const size_t len)
{
boost::system::error_code ec;
auto bytes = boost::asio::write(socket, boost::asio::buffer(buf, len), ec);
return bytes;
}
-std::size_t RGWAsioClientIO::read_data(char* const buf, const std::size_t max)
+size_t RGWAsioClientIO::read_data(char* const buf, const size_t max)
{
// read data from the body's bufferlist
auto bytes = std::min<unsigned>(max, body_iter.get_remaining());
return;
}
-std::size_t RGWAsioClientIO::send_status(const int status,
- const char* const status_name)
+size_t RGWAsioClientIO::send_status(const int status,
+ const char* const status_name)
{
static constexpr size_t STATUS_BUF_SIZE = 128;
return write_data(statusbuf, statuslen);
}
-std::size_t RGWAsioClientIO::send_100_continue()
+size_t RGWAsioClientIO::send_100_continue()
{
const char HTTTP_100_CONTINUE[] = "HTTP/1.1 100 CONTINUE\r\n\r\n";
return write_data(HTTTP_100_CONTINUE, sizeof(HTTTP_100_CONTINUE) - 1);
"Date: %a, %d %b %Y %H:%M:%S %Z\r\n", tmp);
}
-std::size_t RGWAsioClientIO::complete_header()
+size_t RGWAsioClientIO::complete_header()
{
size_t sent = 0;
return sent + write_data(HEADER_END, sizeof(HEADER_END) - 1);
}
-std::size_t RGWAsioClientIO::send_header(const boost::string_ref& name,
- const boost::string_ref& value)
+size_t RGWAsioClientIO::send_header(const boost::string_ref& name,
+ const boost::string_ref& value)
{
char hdrbuf[name.size() + 2 + value.size() + 2 + 1];
const auto hdrlen = snprintf(hdrbuf, sizeof(hdrbuf), "%.*s: %.*s\r\n",
return write_data(hdrbuf, hdrlen);
}
-std::size_t RGWAsioClientIO::send_content_length(const uint64_t len)
+size_t RGWAsioClientIO::send_content_length(const uint64_t len)
{
static constexpr size_t CONLEN_BUF_SIZE = 128;
RGWEnv env;
void init_env(CephContext *cct) override;
- std::size_t write_data(const char *buf, std::size_t len);
- std::size_t read_data(char *buf, std::size_t max);
+ size_t write_data(const char *buf, size_t len);
+ size_t read_data(char *buf, size_t max);
public:
RGWAsioClientIO(tcp::socket&& socket, request_type&& request);
int complete_request() override;
void flush() override;
- std::size_t send_status(int status, const char *status_name) override;
- std::size_t send_100_continue() override;
- std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) override;
- std::size_t send_content_length(uint64_t len) override;
- std::size_t complete_header() override;
-
- std::size_t recv_body(char* buf, std::size_t max) override {
+ size_t send_status(int status, const char *status_name) override;
+ size_t send_100_continue() override;
+ size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) override;
+ size_t send_content_length(uint64_t len) override;
+ size_t complete_header() override;
+
+ size_t recv_body(char* buf, size_t max) override {
return read_data(buf, max);
}
- std::size_t send_body(const char* buf, std::size_t len) override {
+ size_t send_body(const char* buf, size_t len) override {
return write_data(buf, len);
}
#define dout_subsys ceph_subsys_rgw
-std::size_t RGWCivetWeb::write_data(const char *buf, std::size_t len)
+size_t RGWCivetWeb::write_data(const char *buf, size_t len)
{
const int ret = mg_write(conn, buf, len);
if (ret == 0) {
{
}
-std::size_t RGWCivetWeb::read_data(char *buf, std::size_t len)
+size_t RGWCivetWeb::read_data(char *buf, size_t len)
{
const int ret = mg_read(conn, buf, len);
if (ret < 0) {
}
template <class... Args>
-static inline std::size_t safe_mg_printf(Args&&... args)
+static inline size_t safe_mg_printf(Args&&... args)
{
const int ret = mg_printf(std::forward<Args>(args)...);
if (ret == 0) {
} else if (ret < 0) {
throw RGWRestfulIOEngine::Exception(-ret, std::system_category());
}
- return static_cast<std::size_t>(ret);
+ return static_cast<size_t>(ret);
}
-std::size_t RGWCivetWeb::send_status(int status, const char *status_name)
+size_t RGWCivetWeb::send_status(int status, const char *status_name)
{
mg_set_http_status(conn, status);
status_name ? status_name : "");
}
-std::size_t RGWCivetWeb::send_100_continue()
+size_t RGWCivetWeb::send_100_continue()
{
const char HTTTP_100_CONTINUE[] = "HTTP/1.1 100 CONTINUE\r\n\r\n";
return write_data(HTTTP_100_CONTINUE, sizeof(HTTTP_100_CONTINUE) - 1);
}
-std::size_t RGWCivetWeb::send_header(const boost::string_ref& name,
- const boost::string_ref& value)
+size_t RGWCivetWeb::send_header(const boost::string_ref& name,
+ const boost::string_ref& value)
{
return safe_mg_printf(conn, "%.*s: %.*s\r\n", name.length(), name.data(),
value.length(), value.data());
}
-std::size_t RGWCivetWeb::dump_date_header()
+size_t RGWCivetWeb::dump_date_header()
{
char timestr[TIME_BUF_SIZE];
return write_data(timestr, strlen(timestr));
}
-std::size_t RGWCivetWeb::complete_header()
+size_t RGWCivetWeb::complete_header()
{
- std::size_t sent = dump_date_header();
+ size_t sent = dump_date_header();
if (explicit_keepalive) {
constexpr char CONN_KEEP_ALIVE[] = "Connection: Keep-Alive\r\n";
return sent + write_data(HEADER_END, sizeof(HEADER_END) - 1);
}
-std::size_t RGWCivetWeb::send_content_length(uint64_t len)
+size_t RGWCivetWeb::send_content_length(uint64_t len)
{
return safe_mg_printf(conn, "Content-Length: %" PRIu64 "\r\n", len);
}
bool explicit_keepalive;
bool explicit_conn_close;
- std::size_t write_data(const char *buf, std::size_t len);
- std::size_t read_data(char *buf, std::size_t len);
- std::size_t dump_date_header();
+ size_t write_data(const char *buf, size_t len);
+ size_t read_data(char *buf, size_t len);
+ size_t dump_date_header();
public:
void init_env(CephContext *cct);
- std::size_t send_status(int status, const char *status_name) override;
- std::size_t send_100_continue() override;
- std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) override;
- std::size_t send_content_length(uint64_t len) override;
- std::size_t complete_header() override;
+ size_t send_status(int status, const char *status_name) override;
+ size_t send_100_continue() override;
+ size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) override;
+ size_t send_content_length(uint64_t len) override;
+ size_t complete_header() override;
- std::size_t recv_body(char* buf, std::size_t max) override {
+ size_t recv_body(char* buf, size_t max) override {
return read_data(buf, max);
}
- std::size_t send_body(const char* buf, std::size_t len) override {
+ size_t send_body(const char* buf, size_t len) override {
return write_data(buf, len);
}
/* Prepare options for CivetWeb. */
const std::set<boost::string_ref> rgw_opts = { "port", "prefix" };
- const std::size_t CW_NUM_OPTS = 2 * (conf_map.size() - rgw_opts.size()) + 1;
+ const size_t CW_NUM_OPTS = 2 * (conf_map.size() - rgw_opts.size()) + 1;
const char *options[CW_NUM_OPTS];
- std::size_t i = 0;
+ size_t i = 0;
for (const auto& pair : conf_map) {
if (! rgw_opts.count(pair.first)) {
}
-int RGWRestfulIO::recv_body(char *buf, std::size_t max, bool calculate_hash)
+int RGWRestfulIO::recv_body(char *buf, size_t max, bool calculate_hash)
{
try {
const auto sent = recv_body(buf, max);
public:
typedef std::system_error Exception;
- virtual std::size_t send_status(int status, const char *status_name) = 0;
- virtual std::size_t send_100_continue() = 0;
+ virtual size_t send_status(int status, const char *status_name) = 0;
+ virtual size_t send_100_continue() = 0;
/* Send header to client. On success returns number of bytes sent to the direct
* client of RadosGW. On failure throws int containing errno. boost::string_ref
* is being used because of length it internally carries. */
- virtual std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) = 0;
+ virtual size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) = 0;
/* Inform a client about a content length. Takes number of bytes supplied in
* @len XOR one of the alternative modes for dealing with it passed as @mode.
* - The method must be called EXACTLY ONE time.
* - The method must be preceeded with a call to send_status().
* - The method must not be called after complete_header(). */
- virtual std::size_t send_content_length(uint64_t len) = 0;
+ virtual size_t send_content_length(uint64_t len) = 0;
- virtual std::size_t send_chunked_transfer_encoding() {
+ virtual size_t send_chunked_transfer_encoding() {
/* This is a null implementation. We don't send anything here, even the HTTP
* header. The intended behaviour should be provided through a decorator or
* directly by a given front-end. */
return 0;
}
- virtual std::size_t complete_header() = 0;
+ virtual size_t complete_header() = 0;
/* Receive body. On success Returns number of bytes sent to the direct
* client of RadosGW. On failure throws int containing errno. */
- virtual std::size_t recv_body(char* buf, std::size_t max) = 0;
- virtual std::size_t send_body(const char* buf, std::size_t len) = 0;
+ virtual size_t recv_body(char* buf, size_t max) = 0;
+ virtual size_t send_body(const char* buf, size_t len) = 0;
virtual void flush() = 0;
};
: decoratee(std::move(decoratee)) {
}
- std::size_t send_status(const int status,
- const char* const status_name) override {
+ size_t send_status(const int status,
+ const char* const status_name) override {
return get_decoratee().send_status(status, status_name);
}
- std::size_t send_100_continue() override {
+ size_t send_100_continue() override {
return get_decoratee().send_100_continue();
}
- std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) override {
+ size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) override {
return get_decoratee().send_header(name, value);
}
- std::size_t send_content_length(const uint64_t len) override {
+ size_t send_content_length(const uint64_t len) override {
return get_decoratee().send_content_length(len);
}
- std::size_t send_chunked_transfer_encoding() override {
+ size_t send_chunked_transfer_encoding() override {
return get_decoratee().send_chunked_transfer_encoding();
}
- std::size_t complete_header() override {
+ size_t complete_header() override {
return get_decoratee().complete_header();
}
- std::size_t recv_body(char* const buf, const std::size_t max) override {
+ size_t recv_body(char* const buf, const size_t max) override {
return get_decoratee().recv_body(buf, max);
}
- std::size_t send_body(const char* const buf,
- const std::size_t len) override {
+ size_t send_body(const char* const buf,
+ const size_t len) override {
return get_decoratee().send_body(buf, len);
}
}
using RGWDecoratedRestfulIO<RGWRestfulIOEngine*>::recv_body;
- virtual int recv_body(char* buf, std::size_t max, bool calculate_hash);
+ virtual int recv_body(char* buf, size_t max, bool calculate_hash);
std::string grab_aws4_sha256_hash();
}; /* RGWRestfulIO */
class RGWClientIOStreamBuf : public std::streambuf {
protected:
RGWRestfulIO &rio;
- std::size_t const window_size;
- std::size_t const putback_size;
+ size_t const window_size;
+ size_t const putback_size;
std::vector<char> buffer;
public:
- RGWClientIOStreamBuf(RGWRestfulIO &rio, std::size_t ws, std::size_t ps = 1)
+ RGWClientIOStreamBuf(RGWRestfulIO &rio, size_t ws, size_t ps = 1)
: rio(rio),
window_size(ws),
putback_size(ps),
total_received(0) {
}
- std::size_t send_status(const int status,
- const char* const status_name) override {
+ size_t send_status(const int status,
+ const char* const status_name) override {
const auto sent = RGWDecoratedRestfulIO<T>::send_status(status, status_name);
if (enabled) {
total_sent += sent;
return sent;
}
- std::size_t send_100_continue() override {
+ size_t send_100_continue() override {
const auto sent = RGWDecoratedRestfulIO<T>::send_100_continue();
if (enabled) {
total_sent += sent;
return sent;
}
- std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) override {
+ size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) override {
const auto sent = RGWDecoratedRestfulIO<T>::send_header(name, value);
if (enabled) {
total_sent += sent;
return sent;
}
- std::size_t send_content_length(const uint64_t len) override {
+ size_t send_content_length(const uint64_t len) override {
const auto sent = RGWDecoratedRestfulIO<T>::send_content_length(len);
if (enabled) {
total_sent += sent;
return sent;
}
- std::size_t send_chunked_transfer_encoding() override {
+ size_t send_chunked_transfer_encoding() override {
const auto sent = RGWDecoratedRestfulIO<T>::send_chunked_transfer_encoding();
if (enabled) {
total_sent += sent;
return sent;
}
- std::size_t complete_header() override {
+ size_t complete_header() override {
const auto sent = RGWDecoratedRestfulIO<T>::complete_header();
if (enabled) {
total_sent += sent;
return sent;
}
- std::size_t recv_body(char* buf, std::size_t max) override {
+ size_t recv_body(char* buf, size_t max) override {
const auto received = RGWDecoratedRestfulIO<T>::recv_body(buf, max);
if (enabled) {
total_received += received;
return received;
}
- std::size_t send_body(const char* const buf,
- const std::size_t len) override {
+ size_t send_body(const char* const buf,
+ const size_t len) override {
const auto sent = RGWDecoratedRestfulIO<T>::send_body(buf, len);
if (enabled) {
total_sent += sent;
buffer_data(false) {
}
- std::size_t send_content_length(const uint64_t len) override;
- std::size_t send_chunked_transfer_encoding() override;
- std::size_t complete_header() override;
- std::size_t send_body(const char* buf, std::size_t len) override;
+ size_t send_content_length(const uint64_t len) override;
+ size_t send_chunked_transfer_encoding() override;
+ size_t complete_header() override;
+ size_t send_body(const char* buf, size_t len) override;
int complete_request() override;
};
template <typename T>
-std::size_t RGWRestfulIOBufferingEngine<T>::send_body(const char* const buf,
- const std::size_t len)
+size_t RGWRestfulIOBufferingEngine<T>::send_body(const char* const buf,
+ const size_t len)
{
if (buffer_data) {
data.append(buf, len);
}
template <typename T>
-std::size_t RGWRestfulIOBufferingEngine<T>::send_content_length(const uint64_t len)
+size_t RGWRestfulIOBufferingEngine<T>::send_content_length(const uint64_t len)
{
has_content_length = true;
return RGWDecoratedRestfulIO<T>::send_content_length(len);
}
template <typename T>
-std::size_t RGWRestfulIOBufferingEngine<T>::send_chunked_transfer_encoding()
+size_t RGWRestfulIOBufferingEngine<T>::send_chunked_transfer_encoding()
{
has_content_length = true;
return RGWDecoratedRestfulIO<T>::send_chunked_transfer_encoding();
}
template <typename T>
-std::size_t RGWRestfulIOBufferingEngine<T>::complete_header()
+size_t RGWRestfulIOBufferingEngine<T>::complete_header()
{
if (! has_content_length) {
/* We will dump everything in complete_request(). */
chunking_enabled(false) {
}
- std::size_t send_content_length(const uint64_t len) override {
+ size_t send_content_length(const uint64_t len) override {
has_content_length = true;
return RGWDecoratedRestfulIO<T>::send_content_length(len);
}
- std::size_t send_chunked_transfer_encoding() override {
+ size_t send_chunked_transfer_encoding() override {
has_content_length = false;
chunking_enabled = true;
return RGWDecoratedRestfulIO<T>::send_header("Transfer-Encoding", "chunked");
}
- std::size_t send_body(const char* buf,
- const std::size_t len) override {
+ size_t send_body(const char* buf,
+ const size_t len) override {
if (! chunking_enabled) {
return RGWDecoratedRestfulIO<T>::send_body(buf, len);
} else {
static constexpr char HEADER_END[] = "\r\n";
char sizebuf[32];
const auto slen = snprintf(sizebuf, sizeof(buf), "%" PRIx64 "\r\n", len);
- std::size_t sent = 0;
+ size_t sent = 0;
sent += RGWDecoratedRestfulIO<T>::send_body(sizebuf, slen);
sent += RGWDecoratedRestfulIO<T>::send_body(buf, len);
}
int complete_request() override {
- std::size_t sent = 0;
+ size_t sent = 0;
if (chunking_enabled) {
static constexpr char CHUNKED_RESP_END[] = "0\r\n\r\n";
action(ContentLengthAction::UNKNOWN) {
}
- std::size_t send_status(const int status,
- const char* const status_name) override {
+ size_t send_status(const int status,
+ const char* const status_name) override {
if (204 == status || 304 == status) {
action = ContentLengthAction::INHIBIT;
} else {
return RGWDecoratedRestfulIO<T>::send_status(status, status_name);
}
- std::size_t send_content_length(const uint64_t len) override {
+ size_t send_content_length(const uint64_t len) override {
switch(action) {
case ContentLengthAction::FORWARD:
return RGWDecoratedRestfulIO<T>::send_content_length(len);
std::vector<std::pair<std::string, std::string>> headers;
- std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) override {
+ size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) override {
switch (phase) {
case ReorderState::RGW_EARLY_HEADERS:
case ReorderState::RGW_STATUS_SEEN:
phase(ReorderState::RGW_EARLY_HEADERS) {
}
- std::size_t send_status(const int status,
- const char* const status_name) override {
+ size_t send_status(const int status,
+ const char* const status_name) override {
phase = ReorderState::RGW_STATUS_SEEN;
return RGWDecoratedRestfulIO<T>::send_status(status, status_name);
}
- std::size_t send_content_length(const uint64_t len) override {
+ size_t send_content_length(const uint64_t len) override {
if (ReorderState::RGW_EARLY_HEADERS == phase) {
/* Oh great, someone tries to send content length before status. */
content_length = len;
}
}
- std::size_t complete_header() override {
+ size_t complete_header() override {
size_t sent = 0;
/* Change state in order to immediately send everything we get. */
#include "rgw_fcgi.h"
#include "acconfig.h"
-std::size_t RGWFCGX::write_data(const char* const buf, const std::size_t len)
+size_t RGWFCGX::write_data(const char* const buf, const size_t len)
{
const auto ret = FCGX_PutStr(buf, len, fcgx->out);
if (ret < 0) {
return ret;
}
-std::size_t RGWFCGX::read_data(char* const buf, const std::size_t len)
+size_t RGWFCGX::read_data(char* const buf, const size_t len)
{
const auto ret = FCGX_GetStr(buf, len, fcgx->in);
if (ret < 0) {
env.init(cct, (char **)fcgx->envp);
}
-std::size_t RGWFCGX::send_status(const int status, const char* const status_name)
+size_t RGWFCGX::send_status(const int status, const char* const status_name)
{
static constexpr size_t STATUS_BUF_SIZE = 128;
return write_data(statusbuf, statuslen);
}
-std::size_t RGWFCGX::send_100_continue()
+size_t RGWFCGX::send_100_continue()
{
const auto sent = send_status(100, "Continue");
flush();
return sent;
}
-std::size_t RGWFCGX::send_header(const boost::string_ref& name,
- const boost::string_ref& value)
+size_t RGWFCGX::send_header(const boost::string_ref& name,
+ const boost::string_ref& value)
{
char hdrbuf[name.size() + 2 + value.size() + 2 + 1];
const auto hdrlen = snprintf(hdrbuf, sizeof(hdrbuf),
return write_data(hdrbuf, hdrlen);
}
-std::size_t RGWFCGX::send_content_length(const uint64_t len)
+size_t RGWFCGX::send_content_length(const uint64_t len)
{
static constexpr size_t CONLEN_BUF_SIZE = 128;
return write_data(sizebuf, sizelen);
}
-std::size_t RGWFCGX::complete_header()
+size_t RGWFCGX::complete_header()
{
static constexpr char HEADER_END[] = "\r\n";
return write_data(HEADER_END, sizeof(HEADER_END) - 1);
FCGX_Request *fcgx;
RGWEnv env;
- std::size_t read_data(char* buf, std::size_t len);
- std::size_t write_data(const char* buf, std::size_t len);
+ size_t read_data(char* buf, size_t len);
+ size_t write_data(const char* buf, size_t len);
public:
explicit RGWFCGX(FCGX_Request* const fcgx)
}
void init_env(CephContext* cct) override;
- std::size_t send_status(int status, const char* status_name) override;
- std::size_t send_100_continue() override;
- std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) override;
- std::size_t send_content_length(uint64_t len) override;
- std::size_t complete_header() override;
-
- std::size_t recv_body(char* buf, std::size_t max) override {
+ size_t send_status(int status, const char* status_name) override;
+ size_t send_100_continue() override;
+ size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) override;
+ size_t send_content_length(uint64_t len) override;
+ size_t complete_header() override;
+
+ size_t recv_body(char* buf, size_t max) override {
return read_data(buf, max);
}
- std::size_t send_body(const char* buf, std::size_t len) override {
+ size_t send_body(const char* buf, size_t len) override {
return write_data(buf, len);
}
return 0;
}
-std::size_t RGWLoadGenIO::write_data(const char* const buf,
- const std::size_t len)
+size_t RGWLoadGenIO::write_data(const char* const buf,
+ const size_t len)
{
return len;
}
-std::size_t RGWLoadGenIO::read_data(char* const buf, const std::size_t len)
+size_t RGWLoadGenIO::read_data(char* const buf, const size_t len)
{
- const std::size_t read_len = std::min(left_to_read,
- static_cast<uint64_t>(len));
+ const size_t read_len = std::min(left_to_read,
+ static_cast<uint64_t>(len));
left_to_read -= read_len;
return read_len;
}
env.set("SERVER_PORT", port_buf);
}
-std::size_t RGWLoadGenIO::send_status(const int status,
- const char* const status_name)
+size_t RGWLoadGenIO::send_status(const int status,
+ const char* const status_name)
{
return 0;
}
-std::size_t RGWLoadGenIO::send_100_continue()
+size_t RGWLoadGenIO::send_100_continue()
{
return 0;
}
-std::size_t RGWLoadGenIO::send_header(const boost::string_ref& name,
- const boost::string_ref& value)
+size_t RGWLoadGenIO::send_header(const boost::string_ref& name,
+ const boost::string_ref& value)
{
return 0;
}
-std::size_t RGWLoadGenIO::complete_header()
+size_t RGWLoadGenIO::complete_header()
{
return 0;
}
-std::size_t RGWLoadGenIO::send_content_length(const uint64_t len)
+size_t RGWLoadGenIO::send_content_length(const uint64_t len)
{
return 0;
}
RGWEnv env;
void init_env(CephContext *cct) override;
- std::size_t read_data(char *buf, std::size_t len);
- std::size_t write_data(const char *buf, std::size_t len);
+ size_t read_data(char *buf, size_t len);
+ size_t write_data(const char *buf, size_t len);
public:
explicit RGWLoadGenIO(RGWLoadGenRequestEnv* const req)
req(req) {
}
- std::size_t send_status(int status, const char *status_name) override;
- std::size_t send_100_continue() override;
- std::size_t send_header(const boost::string_ref& name,
- const boost::string_ref& value) override;
- std::size_t complete_header() override;
- std::size_t send_content_length(uint64_t len) override;
+ size_t send_status(int status, const char *status_name) override;
+ size_t send_100_continue() override;
+ size_t send_header(const boost::string_ref& name,
+ const boost::string_ref& value) override;
+ size_t complete_header() override;
+ size_t send_content_length(uint64_t len) override;
- std::size_t recv_body(char* buf, std::size_t max) override {
+ size_t recv_body(char* buf, size_t max) override {
return read_data(buf, max);
}
- std::size_t send_body(const char* buf, std::size_t len) override {
+ size_t send_body(const char* buf, size_t len) override {
return write_data(buf, len);
}
return dump_header_if_nonempty(s, "Location", redirect);
}
-static std::size_t dump_time_header_impl(char (×tr)[TIME_BUF_SIZE],
- const real_time t)
+static size_t dump_time_header_impl(char (×tr)[TIME_BUF_SIZE],
+ const real_time t)
{
const utime_t ut(t);
time_t secs = static_cast<time_t>(ut.sec());
{
char timestr[TIME_BUF_SIZE];
- const std::size_t len = dump_time_header_impl(timestr, t);
+ const size_t len = dump_time_header_impl(timestr, t);
if (len == 0) {
return;
}
/* dumping range into temp buffer first, as libfcgi will fail to digest
* %lld */
char range_buf[128];
- std::size_t len;
+ size_t len;
if (! total) {
len = snprintf(range_buf, sizeof(range_buf), "bytes */%lld",
int dump_body(struct req_state* const s,
const char* const buf,
- const std::size_t len)
+ const size_t len)
{
try {
return RESTFUL_IO(s)->send_body(buf, len);
int recv_body(struct req_state* const s,
char* const buf,
- const std::size_t max)
+ const size_t max)
{
try {
return RESTFUL_IO(s)->recv_body(buf, max, s->aws4_auth_needs_complete);
bool should_log;
protected:
std::map<std::string, RGWRESTMgr*> resource_mgrs;
- std::multimap<std::size_t, std::string> resources_by_size;
+ std::multimap<size_t, std::string> resources_by_size;
RGWRESTMgr* default_mgr;
public:
uint32_t max_age);
extern void dump_access_control(req_state *s, RGWOp *op);
-extern int dump_body(struct req_state* s, const char* buf, std::size_t len);
+extern int dump_body(struct req_state* s, const char* buf, size_t len);
extern int dump_body(struct req_state* s, /* const */ ceph::buffer::list& bl);
extern int dump_body(struct req_state* s, const std::string& str);
-extern int recv_body(struct req_state* s, char* buf, std::size_t max);
+extern int recv_body(struct req_state* s, char* buf, size_t max);
#endif /* CEPH_RGW_REST_H */
constexpr size_t MAX_LINE_SIZE = 2048;
RGWClientIOStreamBuf ciosb(static_cast<RGWRestfulIO&>(*(s->cio)),
- std::size_t(s->cct->_conf->rgw_max_chunk_size));
+ size_t(s->cct->_conf->rgw_max_chunk_size));
istream cioin(&ciosb);
char buf[MAX_LINE_SIZE];
goto done;
{
- static constexpr std::size_t PREFIX_LEN = strlen("AUTH_rgwtk");
+ static constexpr size_t PREFIX_LEN = strlen("AUTH_rgwtk");
char token_val[PREFIX_LEN + bl.length() * 2 + 1];
snprintf(token_val, PREFIX_LEN + 1, "AUTH_rgwtk");