}
rgw_user user;
int ret = conn->forward(user, info, NULL, MAX_REST_RESPONSE, &in_data, &response);
- if (ret < 0) {
- return ret;
- }
- ret = parser.parse(response.c_str(), response.length());
- if (ret < 0) {
+
+ int parse_ret = parser.parse(response.c_str(), response.length());
+ if (parse_ret < 0) {
cerr << "failed to parse response" << std::endl;
- return ret;
+ return parse_ret;
}
- return 0;
+ return ret;
}
static int send_to_url(const string& url, RGWAccessKey& key, req_info& info,
bufferlist response;
int ret = req.forward_request(key, info, MAX_REST_RESPONSE, &in_data, &response);
- if (ret < 0) {
- return ret;
- }
- ret = parser.parse(response.c_str(), response.length());
- if (ret < 0) {
+
+ int parse_ret = parser.parse(response.c_str(), response.length());
+ if (parse_ret < 0) {
cout << "failed to parse response" << std::endl;
- return ret;
+ return parse_ret;
}
- return 0;
+ return ret;
}
static int send_to_remote_or_url(const string& remote, const string& url,
int ret = send_to_remote_or_url(remote, url, access, secret, info, bl, p);
if (ret < 0) {
cerr << "request failed: " << cpp_strerror(-ret) << std::endl;
+
+ // did we parse an error message?
+ auto message = p.find_obj("Message");
+ if (message) {
+ cerr << "Reason: " << message->get_data() << std::endl;
+ }
return ret;
}