}
if (!validate_cors_rule_method(rule, req_meth)) {
- return -ENOTSUP;
+ return -ENOENT;
}
return 0;
}
dout(0) <<
"Preflight request without mandatory Origin header"
<< dendl;
- ret = -EACCES;
- return;
- }
- if (!cors_exist) {
- dout(2) << "No CORS configuration set yet for this bucket" << dendl;
- ret = -ENOENT;
+ ret = -EINVAL;
return;
}
req_meth = s->info.env->get("HTTP_ACCESS_CONTROL_REQUEST_METHOD");
dout(0) <<
"Preflight request without mandatory Access-control-request-method header"
<< dendl;
- ret = -EACCES;
+ ret = -EINVAL;
+ return;
+ }
+ if (!cors_exist) {
+ dout(2) << "No CORS configuration set yet for this bucket" << dendl;
+ ret = -ENOENT;
return;
}
req_hdrs = s->info.env->get("HTTP_ACCESS_CONTROL_ALLOW_HEADERS");
uint32_t max_age = CORS_MAX_AGE_INVALID;
/*EACCES means, there is no CORS registered yet for the bucket
*ENOENT means, there is no match of the Origin in the list of CORSRule
- *ENOTSUPP means, the HTTP_METHOD is not supported
*/
if (ret == -ENOENT)
ret = -EACCES;
- if (ret != -EACCES) {
- get_response_params(hdrs, exp_hdrs, &max_age);
- } else {
+ if (ret < 0) {
set_req_state_err(s, ret);
dump_errno(s);
end_header(s, NULL);
return;
}
+ get_response_params(hdrs, exp_hdrs, &max_age);
dump_errno(s);
dump_access_control(s, origin, req_meth, hdrs.c_str(), exp_hdrs.c_str(), max_age);