From b32d4f4ec2434d571e63a8f0c908b03fa82b63d0 Mon Sep 17 00:00:00 2001 From: Claudio Bisegni <Claudio.Bisegni@lnf.infn.it> Date: Mon, 13 Nov 2017 15:25:07 +0100 Subject: [PATCH] fix micro unit toolkit to use libbson and fixed other bug due to new CDataWrapper implementation --- .../driver/AbstractRemoteIODriver.h | 4 ++- .../raw_driver/RawDriverUnitProxy.cpp | 27 +++++++++++++------ example/ChaosPerformanceTester/main.cpp | 1 - 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h b/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h index 1ca41ca5d..7f863fb13 100644 --- a/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h +++ b/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h @@ -243,7 +243,9 @@ namespace chaos { } } } else { - if(!message->hasKey(MESSAGE)){ + if(message->hasKey(AUTHORIZATION_KEY)) { + sendAuthenticationACK(); + } else if(!message->hasKey(MESSAGE)){ //send error because not right type of req index EndpointType::sendError(connection_identifier, -2, "message field is mandatory", __PRETTY_FUNCTION__); diff --git a/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/RawDriverUnitProxy.cpp b/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/RawDriverUnitProxy.cpp index dd6e571d9..cf683970f 100644 --- a/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/RawDriverUnitProxy.cpp +++ b/chaos_micro_unit_toolkit/connection/unit_proxy/raw_driver/RawDriverUnitProxy.cpp @@ -51,24 +51,35 @@ bool RawDriverUnitProxy::manageAutorizationPhase() { //!check authentication state RemoteMessageUniquePtr result = getNextMessage(); if(result->message->hasKey(AUTHORIZATION_STATE) || - result->message->isBoolValue(AUTHORIZATION_STATE)) { - authorization_state = (AuthorizationState)result->message->getBoolValue(AUTHORIZATION_STATE); + result->message->isInt32Value(AUTHORIZATION_STATE)) { + switch (result->message->getInt32Value(AUTHORIZATION_STATE)) { + case 0: + authorization_state = AuthorizationStateDenied; + break; + case 1: + authorization_state = AuthorizationStateOk; + break; + default: + authorization_state = AuthorizationStateDenied; + break; + } + } } return result; } -int RawDriverUnitProxy::sendMessage(DataPackUniquePtr& message_data) { - DataPackUniquePtr message(new DataPack()); - message->addDataPack(MESSAGE, *message_data); +int RawDriverUnitProxy::sendMessage(CDWUniquePtr& message_data) { + CDWUniquePtr message(new DataPack()); + message->addCDWValue(MESSAGE, *message_data); return AbstractUnitProxy::sendMessage(message); } int RawDriverUnitProxy::sendAnswer(RemoteMessageUniquePtr& message, CDWUniquePtr& message_data) { if(message->is_request == false) return - 1; - DataPackUniquePtr answer(new DataPack()); - answer->addInt32(REQUEST_IDENTIFICATION, message->message_id); - answer->addDataPack(MESSAGE, *message_data); + CDWUniquePtr answer(new DataPack()); + answer->addInt32Value(REQUEST_IDENTIFICATION, message->message_id); + answer->addCDWValue(MESSAGE, *message_data); return AbstractUnitProxy::sendMessage(answer); } diff --git a/example/ChaosPerformanceTester/main.cpp b/example/ChaosPerformanceTester/main.cpp index 77b345b54..a29f66078 100644 --- a/example/ChaosPerformanceTester/main.cpp +++ b/example/ChaosPerformanceTester/main.cpp @@ -39,7 +39,6 @@ using namespace std; using namespace chaos; using namespace chaos::common::network; using namespace chaos::ui; -using namespace bson; using namespace boost; using namespace boost::posix_time; using namespace boost::date_time; -- GitLab