+++ /dev/null
-// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
-// vim: ts=8 sw=2 smarttab
-
-#include "rgw_rest.h"
-#include "rgw_rest_s3.h"
-#include "rgw_rest_user.h"
-#include "rgw_os_lib.h"
-#include "rgw_file.h"
-#include "rgw_lib_frontend.h"
-
-namespace rgw {
-
-/* static */
- int RGWHandler_Lib::init_from_header(struct req_state *s)
- {
- string req;
- string first;
-
- const char *req_name = s->relative_uri.c_str();
- const char *p;
-
- /* skip request_params parsing, rgw_file should not be
- * seeing any */
- if (*req_name == '?') {
- p = req_name;
- } else {
- p = s->info.request_params.c_str();
- }
-
- s->info.args.set(p);
- s->info.args.parse();
-
- if (*req_name != '/')
- return 0;
-
- req_name++;
-
- if (!*req_name)
- return 0;
-
- req = req_name;
- int pos = req.find('/');
- if (pos >= 0) {
- first = req.substr(0, pos);
- } else {
- first = req;
- }
-
- if (s->bucket_name.empty()) {
- s->bucket_name = std::move(first);
- if (pos >= 0) {
- // XXX ugh, another copy
- string encoded_obj_str = req.substr(pos+1);
- s->object = rgw_obj_key(encoded_obj_str, s->info.args.get("versionId"));
- }
- } else {
- s->object = rgw_obj_key(req_name, s->info.args.get("versionId"));
- }
- return 0;
- } /* init_from_header */
-
-} /* namespace rgw */