mirror of https://gitee.com/bigwinds/arangodb
use auto for HTTP response headers iteration
This commit is contained in:
parent
a537507dc6
commit
5ad7dea0c8
|
@ -779,10 +779,10 @@ void RestReplicationHandler::handleTrampolineCoordinator () {
|
||||||
(res->result->getHttpReturnCode()));
|
(res->result->getHttpReturnCode()));
|
||||||
_response->setContentType(res->result->getHeaderField("content-type",dummy));
|
_response->setContentType(res->result->getHeaderField("content-type",dummy));
|
||||||
_response->body().swap(& (res->result->getBody()));
|
_response->body().swap(& (res->result->getBody()));
|
||||||
map<string, string> resultHeaders = res->result->getHeaderFields();
|
|
||||||
map<string, string>::iterator it;
|
auto const& resultHeaders = res->result->getHeaderFields();
|
||||||
for (it = resultHeaders.begin(); it != resultHeaders.end(); ++it) {
|
for (auto const& it : resultHeaders) {
|
||||||
_response->setHeader(it->first, it->second);
|
_response->setHeader(it.first, it.second);
|
||||||
}
|
}
|
||||||
delete res;
|
delete res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1356,12 +1356,11 @@ static void JS_ClusterTest (const v8::FunctionCallbackInfo<v8::Value>& args) {
|
||||||
else { // Everything is OK
|
else { // Everything is OK
|
||||||
// The headers:
|
// The headers:
|
||||||
v8::Handle<v8::Object> h = v8::Object::New(isolate);
|
v8::Handle<v8::Object> h = v8::Object::New(isolate);
|
||||||
map<string,string> headers = res->result->getHeaderFields();
|
auto const& headers = res->result->getHeaderFields();
|
||||||
map<string,string>::iterator i;
|
for (auto const& it : headers) {
|
||||||
for (i = headers.begin(); i != headers.end(); ++i) {
|
h->ForceSet(TRI_V8_STD_STRING(it.first), TRI_V8_STD_STRING(it.second));
|
||||||
h->Set(TRI_V8_STD_STRING(i->first), TRI_V8_STD_STRING(i->second));
|
|
||||||
}
|
}
|
||||||
r->Set(TRI_V8_ASCII_STRING("headers"), h);
|
r->ForceSet(TRI_V8_ASCII_STRING("headers"), h);
|
||||||
|
|
||||||
// The body:
|
// The body:
|
||||||
StringBuffer& theBody = res->result->getBody();
|
StringBuffer& theBody = res->result->getBody();
|
||||||
|
|
|
@ -352,8 +352,8 @@ namespace triagens {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const std::map<std::string, std::string>& headers = result->getHeaderFields();
|
auto const& headers = result->getHeaderFields();
|
||||||
std::map<std::string, std::string>::const_iterator it = headers.find(_errorHeader);
|
auto it = headers.find(_errorHeader);
|
||||||
|
|
||||||
if (it != headers.end()) {
|
if (it != headers.end()) {
|
||||||
uint32_t errorCount = StringUtils::uint32((*it).second);
|
uint32_t errorCount = StringUtils::uint32((*it).second);
|
||||||
|
|
|
@ -432,6 +432,7 @@ v8::Handle<v8::Value> V8ClientConnection::requestData (v8::Isolate* isolate,
|
||||||
|
|
||||||
if (_httpResult != nullptr) {
|
if (_httpResult != nullptr) {
|
||||||
delete _httpResult;
|
delete _httpResult;
|
||||||
|
_httpResult = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.empty()) {
|
if (body.empty()) {
|
||||||
|
@ -461,8 +462,8 @@ v8::Handle<v8::Value> V8ClientConnection::handleResult (v8::Isolate* isolate) {
|
||||||
_lastHttpReturnCode = HttpResponse::SERVER_ERROR;
|
_lastHttpReturnCode = HttpResponse::SERVER_ERROR;
|
||||||
|
|
||||||
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
||||||
result->Set(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
|
result->ForceSet(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
|
||||||
result->Set(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, HttpResponse::SERVER_ERROR));
|
result->ForceSet(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, HttpResponse::SERVER_ERROR));
|
||||||
|
|
||||||
int errorNumber = 0;
|
int errorNumber = 0;
|
||||||
|
|
||||||
|
@ -484,8 +485,8 @@ v8::Handle<v8::Value> V8ClientConnection::handleResult (v8::Isolate* isolate) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, errorNumber));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, errorNumber));
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(_lastErrorMessage));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(_lastErrorMessage));
|
||||||
|
|
||||||
return scope.Escape<v8::Value>(result);
|
return scope.Escape<v8::Value>(result);
|
||||||
}
|
}
|
||||||
|
@ -511,17 +512,17 @@ v8::Handle<v8::Value> V8ClientConnection::handleResult (v8::Isolate* isolate) {
|
||||||
|
|
||||||
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
result->ForceSet(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
||||||
|
|
||||||
if (_lastHttpReturnCode >= 400) {
|
if (_lastHttpReturnCode >= 400) {
|
||||||
string returnMessage(_httpResult->getHttpReturnMessage());
|
string returnMessage(_httpResult->getHttpReturnMessage());
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
|
result->ForceSet(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(returnMessage));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(returnMessage));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result->Set(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, false));
|
result->ForceSet(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, false));
|
||||||
}
|
}
|
||||||
return scope.Escape<v8::Value>(result);
|
return scope.Escape<v8::Value>(result);
|
||||||
}
|
}
|
||||||
|
@ -544,10 +545,11 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
|
||||||
|
|
||||||
if (_httpResult) {
|
if (_httpResult) {
|
||||||
delete _httpResult;
|
delete _httpResult;
|
||||||
|
_httpResult = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.empty()) {
|
if (body.empty()) {
|
||||||
_httpResult = _client->request(method, location, 0, 0, headerFields);
|
_httpResult = _client->request(method, location, nullptr, 0, headerFields);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
_httpResult = _client->request(method, location, body.c_str(), body.length(), headerFields);
|
_httpResult = _client->request(method, location, body.c_str(), body.length(), headerFields);
|
||||||
|
@ -564,7 +566,7 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
|
||||||
_lastHttpReturnCode = HttpResponse::SERVER_ERROR;
|
_lastHttpReturnCode = HttpResponse::SERVER_ERROR;
|
||||||
|
|
||||||
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
||||||
result->Set(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, HttpResponse::SERVER_ERROR));
|
result->ForceSet(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, HttpResponse::SERVER_ERROR));
|
||||||
|
|
||||||
int errorNumber = 0;
|
int errorNumber = 0;
|
||||||
|
|
||||||
|
@ -586,8 +588,8 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, errorNumber));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, errorNumber));
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(_lastErrorMessage));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(_lastErrorMessage));
|
||||||
|
|
||||||
return scope.Escape<v8::Value>(result);
|
return scope.Escape<v8::Value>(result);
|
||||||
}
|
}
|
||||||
|
@ -598,17 +600,17 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
|
||||||
// create raw response
|
// create raw response
|
||||||
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
v8::Handle<v8::Object> result = v8::Object::New(isolate);
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
result->ForceSet(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
||||||
|
|
||||||
if (_lastHttpReturnCode >= 400) {
|
if (_lastHttpReturnCode >= 400) {
|
||||||
string returnMessage(_httpResult->getHttpReturnMessage());
|
string returnMessage(_httpResult->getHttpReturnMessage());
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
|
result->ForceSet(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, _lastHttpReturnCode));
|
||||||
result->Set(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(returnMessage));
|
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(returnMessage));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result->Set(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, false));
|
result->ForceSet(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
// got a body, copy it into the result
|
// got a body, copy it into the result
|
||||||
|
@ -616,21 +618,21 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
|
||||||
if (sb.length() > 0) {
|
if (sb.length() > 0) {
|
||||||
v8::Handle<v8::String> b = TRI_V8_STD_STRING(sb);
|
v8::Handle<v8::String> b = TRI_V8_STD_STRING(sb);
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("body"), b);
|
result->ForceSet(TRI_V8_ASCII_STRING("body"), b);
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy all headers
|
// copy all headers
|
||||||
v8::Handle<v8::Object> headers = v8::Object::New(isolate);
|
v8::Handle<v8::Object> headers = v8::Object::New(isolate);
|
||||||
const map<string, string>& hf = _httpResult->getHeaderFields();
|
auto const& hf = _httpResult->getHeaderFields();
|
||||||
|
|
||||||
for (map<string, string>::const_iterator i = hf.begin(); i != hf.end(); ++i) {
|
for (auto const& it : hf) {
|
||||||
v8::Handle<v8::String> key = TRI_V8_STD_STRING(i->first);
|
v8::Handle<v8::String> key = TRI_V8_STD_STRING(it.first);
|
||||||
v8::Handle<v8::String> val = TRI_V8_STD_STRING(i->second);
|
v8::Handle<v8::String> val = TRI_V8_STD_STRING(it.second);
|
||||||
|
|
||||||
headers->Set(key, val);
|
headers->ForceSet(key, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("headers"), headers);
|
result->ForceSet(TRI_V8_ASCII_STRING("headers"), headers);
|
||||||
|
|
||||||
// and returns
|
// and returns
|
||||||
return scope.Escape<v8::Value>(result);
|
return scope.Escape<v8::Value>(result);
|
||||||
|
|
|
@ -899,15 +899,15 @@ static void JS_Download (const v8::FunctionCallbackInfo<v8::Value>& args) {
|
||||||
result->Set(TRI_V8_ASCII_STRING("message"), TRI_V8_STD_STRING(returnMessage));
|
result->Set(TRI_V8_ASCII_STRING("message"), TRI_V8_STD_STRING(returnMessage));
|
||||||
|
|
||||||
// process response headers
|
// process response headers
|
||||||
auto responseHeaders = response->getHeaderFields();
|
auto const& responseHeaders = response->getHeaderFields();
|
||||||
|
|
||||||
v8::Handle<v8::Object> headers = v8::Object::New(isolate);
|
v8::Handle<v8::Object> headers = v8::Object::New(isolate);
|
||||||
|
|
||||||
for (auto it = responseHeaders.begin(); it != responseHeaders.end(); ++it) {
|
for (auto const& it : responseHeaders) {
|
||||||
headers->Set(TRI_V8_STD_STRING((*it).first), TRI_V8_STD_STRING((*it).second));
|
headers->ForceSet(TRI_V8_STD_STRING(it.first), TRI_V8_STD_STRING(it.second));
|
||||||
}
|
}
|
||||||
|
|
||||||
result->Set(TRI_V8_ASCII_STRING("headers"), headers);
|
result->ForceSet(TRI_V8_ASCII_STRING("headers"), headers);
|
||||||
|
|
||||||
if (returnBodyOnError || (returnCode >= 200 && returnCode <= 299)) {
|
if (returnBodyOnError || (returnCode >= 200 && returnCode <= 299)) {
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue