librgw: pull RGWUserinfo user into RGWLibRequest

Also, return result from process_request(req, io) to caller.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
This commit is contained in:
Matt Benjamin 2015-10-06 16:14:08 -04:00
parent 7e21e2386d
commit ec96809cd0
3 changed files with 8 additions and 9 deletions

View File

@ -150,6 +150,7 @@ int RGWLibProcess::process_request(RGWLibRequest* req)
/* we don't really care about return code */
dout(20) << "process_request() returned " << ret << dendl;
}
return ret;
} /* process_request */
static inline void abort_req(struct req_state *s, RGWOp *op, int err_no)
@ -200,10 +201,8 @@ int RGWLibProcess::process_request(RGWLibRequest* req, RGWLibIO* io)
*/
rgw_env.set("HTTP_HOST", "10.1.1.220" /* XXXX: fix me */);
RGWUserInfo userinfo;
/* XXX and -then- bloat up req_state with string copies from it */
struct req_state rstate(req->cct, &rgw_env, &userinfo);
struct req_state rstate(req->cct, &rgw_env, req->get_user());
struct req_state *s = &rstate;
// XXX fix this

View File

@ -60,14 +60,13 @@ class RGWListBucketsRequest : public RGWLibRequest,
public RGWListBuckets_ObjStore_Lib /* RGWOp */
{
public:
RGWUserInfo* user;
uint64_t* offset;
void* cb_arg;
rgw_readdir_cb rcb;
RGWListBucketsRequest(CephContext* _cct, RGWUserInfo *_user,
rgw_readdir_cb _rcb, void* _cb_arg, uint64_t* _offset)
: RGWLibRequest(_cct), user(_user), offset(_offset), cb_arg(_cb_arg),
: RGWLibRequest(_cct, _user), offset(_offset), cb_arg(_cb_arg),
rcb(_rcb) {
magic = 71;
op = this;
@ -119,7 +118,6 @@ class RGWListBucketRequest : public RGWLibRequest,
public RGWListBucket_ObjStore_Lib /* RGWOp */
{
public:
RGWUserInfo* user;
std::string& uri;
uint64_t* offset;
void* cb_arg;
@ -127,7 +125,7 @@ public:
RGWListBucketRequest(CephContext* _cct, RGWUserInfo *_user, std::string& _uri,
rgw_readdir_cb _rcb, void* _cb_arg, uint64_t* _offset)
: RGWLibRequest(_cct), user(_user), uri(_uri), offset(_offset),
: RGWLibRequest(_cct, _user), uri(_uri), offset(_offset),
cb_arg(_cb_arg),
rcb(_rcb) {
magic = 72;

View File

@ -110,10 +110,12 @@ public:
/* unambiguiously return req_state */
inline struct req_state* get_state() { return this->RGWRequest::s; }
RGWLibRequest(CephContext* _cct)
: RGWRequest(0), cct(_cct), user(nullptr)
RGWLibRequest(CephContext* _cct, RGWUserInfo* _user)
: RGWRequest(0), cct(_cct), user(_user)
{}
RGWUserInfo* get_user() { return user; }
/* descendant equivalent of *REST*::init_from_header(...):
* prepare request for execute()--should mean, fixup URI-alikes
* and any other expected stat vars in local req_state, for