1
0
Fork 0

use auto for HTTP response headers iteration

This commit is contained in:
Jan Steemann 2015-05-08 17:44:33 +02:00
parent a537507dc6
commit 5ad7dea0c8
5 changed files with 41 additions and 40 deletions

View File

@ -779,10 +779,10 @@ void RestReplicationHandler::handleTrampolineCoordinator () {
(res->result->getHttpReturnCode()));
_response->setContentType(res->result->getHeaderField("content-type",dummy));
_response->body().swap(& (res->result->getBody()));
map<string, string> resultHeaders = res->result->getHeaderFields();
map<string, string>::iterator it;
for (it = resultHeaders.begin(); it != resultHeaders.end(); ++it) {
_response->setHeader(it->first, it->second);
auto const& resultHeaders = res->result->getHeaderFields();
for (auto const& it : resultHeaders) {
_response->setHeader(it.first, it.second);
}
delete res;
}

View File

@ -1356,12 +1356,11 @@ static void JS_ClusterTest (const v8::FunctionCallbackInfo<v8::Value>& args) {
else { // Everything is OK
// The headers:
v8::Handle<v8::Object> h = v8::Object::New(isolate);
map<string,string> headers = res->result->getHeaderFields();
map<string,string>::iterator i;
for (i = headers.begin(); i != headers.end(); ++i) {
h->Set(TRI_V8_STD_STRING(i->first), TRI_V8_STD_STRING(i->second));
auto const& headers = res->result->getHeaderFields();
for (auto const& it : headers) {
h->ForceSet(TRI_V8_STD_STRING(it.first), TRI_V8_STD_STRING(it.second));
}
r->Set(TRI_V8_ASCII_STRING("headers"), h);
r->ForceSet(TRI_V8_ASCII_STRING("headers"), h);
// The body:
StringBuffer& theBody = res->result->getBody();

View File

@ -352,8 +352,8 @@ namespace triagens {
}
}
else {
const std::map<std::string, std::string>& headers = result->getHeaderFields();
std::map<std::string, std::string>::const_iterator it = headers.find(_errorHeader);
auto const& headers = result->getHeaderFields();
auto it = headers.find(_errorHeader);
if (it != headers.end()) {
uint32_t errorCount = StringUtils::uint32((*it).second);

View File

@ -432,6 +432,7 @@ v8::Handle<v8::Value> V8ClientConnection::requestData (v8::Isolate* isolate,
if (_httpResult != nullptr) {
delete _httpResult;
_httpResult = nullptr;
}
if (body.empty()) {
@ -461,8 +462,8 @@ v8::Handle<v8::Value> V8ClientConnection::handleResult (v8::Isolate* isolate) {
_lastHttpReturnCode = HttpResponse::SERVER_ERROR;
v8::Handle<v8::Object> result = v8::Object::New(isolate);
result->Set(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("error"), v8::Boolean::New(isolate, true));
result->ForceSet(TRI_V8_ASCII_STRING("code"), v8::Integer::New(isolate, HttpResponse::SERVER_ERROR));
int errorNumber = 0;
@ -484,8 +485,8 @@ v8::Handle<v8::Value> V8ClientConnection::handleResult (v8::Isolate* isolate) {
break;
}
result->Set(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("errorNum"), v8::Integer::New(isolate, errorNumber));
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(_lastErrorMessage));
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);
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) {
string returnMessage(_httpResult->getHttpReturnMessage());
result->Set(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
result->Set(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("error"), v8::Boolean::New(isolate, true));
result->ForceSet(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, _lastHttpReturnCode));
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(returnMessage));
}
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);
}
@ -544,10 +545,11 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
if (_httpResult) {
delete _httpResult;
_httpResult = nullptr;
}
if (body.empty()) {
_httpResult = _client->request(method, location, 0, 0, headerFields);
_httpResult = _client->request(method, location, nullptr, 0, headerFields);
}
else {
_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;
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;
@ -586,8 +588,8 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
break;
}
result->Set(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("errorNum"), v8::Integer::New(isolate, errorNumber));
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(_lastErrorMessage));
return scope.Escape<v8::Value>(result);
}
@ -598,17 +600,17 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
// create raw response
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) {
string returnMessage(_httpResult->getHttpReturnMessage());
result->Set(TRI_V8_ASCII_STRING("error"), v8::Boolean::New(isolate, true));
result->Set(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("error"), v8::Boolean::New(isolate, true));
result->ForceSet(TRI_V8_ASCII_STRING("errorNum"), v8::Integer::New(isolate, _lastHttpReturnCode));
result->ForceSet(TRI_V8_ASCII_STRING("errorMessage"), TRI_V8_STD_STRING(returnMessage));
}
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
@ -616,21 +618,21 @@ v8::Handle<v8::Value> V8ClientConnection::requestDataRaw (v8::Isolate* isolate,
if (sb.length() > 0) {
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
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) {
v8::Handle<v8::String> key = TRI_V8_STD_STRING(i->first);
v8::Handle<v8::String> val = TRI_V8_STD_STRING(i->second);
for (auto const& it : hf) {
v8::Handle<v8::String> key = TRI_V8_STD_STRING(it.first);
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
return scope.Escape<v8::Value>(result);

View File

@ -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));
// process response headers
auto responseHeaders = response->getHeaderFields();
auto const& responseHeaders = response->getHeaderFields();
v8::Handle<v8::Object> headers = v8::Object::New(isolate);
for (auto it = responseHeaders.begin(); it != responseHeaders.end(); ++it) {
headers->Set(TRI_V8_STD_STRING((*it).first), TRI_V8_STD_STRING((*it).second));
for (auto const& it : responseHeaders) {
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)) {
try {