RGWOp::init(rados_ctx->store, get_state(), this);
op = this; // assign self as op: REQUIRED
- if (! valid_s3_object_name(obj_name))
- return -ERR_INVALID_OBJECT_NAME;
+ int rc = valid_s3_object_name(obj_name);
+ if (rc != 0)
+ return rc;
return 0;
}
dest_object = dst_parent->format_child_name(dst_name);
// need s->object_name?
- if (! valid_s3_object_name(dest_object))
- return -ERR_INVALID_OBJECT_NAME;
+ int rc = valid_s3_object_name(dest_object);
+ if (rc != 0)
+ return rc;
/* XXX and fixup key attr (could optimize w/string ref and
* dest_object) */
return (num_periods == 3);
}
-static inline bool valid_s3_object_name(const string& name) {
+static inline int valid_s3_object_name(const string& name) {
if (name.size() > 1024) {
- return false;
+ return -ERR_INVALID_OBJECT_NAME;
}
if (check_utf8(name.c_str(), name.size())) {
- return false;
+ return -ERR_INVALID_OBJECT_NAME;
}
- return true;
+ return 0;
}
static inline int valid_s3_bucket_name(const string& name, bool relaxed=false)