1
0
Fork 0

fix: add missing processRead() at the end of addResponse

This commit is contained in:
Jan Christoph Uhde 2016-08-24 14:20:06 +02:00
parent df0d080512
commit c4f96cec7c
1 changed files with 7 additions and 9 deletions

View File

@ -204,6 +204,8 @@ void VppCommTask::addResponse(VppResponse* response) {
auto buffer = createChunkForNetworkSingle(slices, id); auto buffer = createChunkForNetworkSingle(slices, id);
addWriteBuffer(std::move(buffer)); addWriteBuffer(std::move(buffer));
processRead(); // do not remove this line - or multiple requests in one
// message will break
} }
VppCommTask::ChunkHeader VppCommTask::readChunkHeader() { VppCommTask::ChunkHeader VppCommTask::readChunkHeader() {
@ -294,8 +296,7 @@ bool VppCommTask::processRead() {
closeTask(rest::ResponseCode::BAD); closeTask(rest::ResponseCode::BAD);
return false; return false;
} catch (...) { } catch (...) {
handleSimpleError(rest::ResponseCode::BAD, handleSimpleError(rest::ResponseCode::BAD, chunkHeader._messageID);
chunkHeader._messageID);
LOG_TOPIC(DEBUG, Logger::COMMUNICATION) << "VPack Validation failed!"; LOG_TOPIC(DEBUG, Logger::COMMUNICATION) << "VPack Validation failed!";
closeTask(rest::ResponseCode::BAD); closeTask(rest::ResponseCode::BAD);
return false; return false;
@ -368,8 +369,7 @@ bool VppCommTask::processRead() {
closeTask(rest::ResponseCode::BAD); closeTask(rest::ResponseCode::BAD);
return false; return false;
} catch (...) { } catch (...) {
handleSimpleError(rest::ResponseCode::BAD, handleSimpleError(rest::ResponseCode::BAD, chunkHeader._messageID);
chunkHeader._messageID);
LOG_TOPIC(DEBUG, Logger::COMMUNICATION) << "VPack Validation failed!"; LOG_TOPIC(DEBUG, Logger::COMMUNICATION) << "VPack Validation failed!";
closeTask(rest::ResponseCode::BAD); closeTask(rest::ResponseCode::BAD);
return false; return false;
@ -428,9 +428,8 @@ bool VppCommTask::processRead() {
request->setClientTaskId(_taskId); request->setClientTaskId(_taskId);
_protocolVersion = request->protocolVersion(); _protocolVersion = request->protocolVersion();
std::unique_ptr<VppResponse> response( std::unique_ptr<VppResponse> response(new VppResponse(
new VppResponse(rest::ResponseCode::SERVER_ERROR, rest::ResponseCode::SERVER_ERROR, chunkHeader._messageID));
chunkHeader._messageID));
response->setHeaderOptions(&_headerOptions); response->setHeaderOptions(&_headerOptions);
executeRequest(std::move(request), std::move(response)); executeRequest(std::move(request), std::move(response));
} }
@ -459,8 +458,7 @@ void VppCommTask::closeTask(rest::ResponseCode code) {
_clientClosed = true; _clientClosed = true;
} }
rest::ResponseCode VppCommTask::authenticateRequest( rest::ResponseCode VppCommTask::authenticateRequest(GeneralRequest* request) {
GeneralRequest* request) {
auto context = (request == nullptr) ? nullptr : request->requestContext(); auto context = (request == nullptr) ? nullptr : request->requestContext();
if (context == nullptr && request != nullptr) { if (context == nullptr && request != nullptr) {