diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h b/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h index 1ca41ca5d67e153ce26fd11d6a04866005117ce5..7f863fb136badbe36645ffafeb88fcaaede5eb30 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 dd6e571d905eb6d4e479687c771f62c1653df253..cf683970f5323246baacbc7a0854d9a9f9b924bf 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 77b345b547af0989be25b860ac64f28c3bfb6188..a29f66078a9b35699836138e37683cb4e89d384f 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;