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())); (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;
} }

View File

@ -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();

View File

@ -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);

View File

@ -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);

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)); 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 {