diff options
author | JackLivio <jack@livio.io> | 2018-02-02 17:53:28 -0500 |
---|---|---|
committer | JackLivio <jack@livio.io> | 2018-02-02 17:53:28 -0500 |
commit | 74ccd312dfff41736f7b8c93bcd8813146d76457 (patch) | |
tree | 3a817024ed0ad485ad981341274137b34e3b8c3c | |
parent | 5b6515d1e63bab3e22d81cc4d2f6184026cfbbee (diff) | |
download | sdl_core-74ccd312dfff41736f7b8c93bcd8813146d76457.tar.gz |
Review Comments
-rw-r--r-- | src/3rd_party/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/components/hmi_message_handler/src/websocket_session.cc | 75 |
2 files changed, 36 insertions, 43 deletions
diff --git a/src/3rd_party/CMakeLists.txt b/src/3rd_party/CMakeLists.txt index 238a28feed..40ac3f4426 100644 --- a/src/3rd_party/CMakeLists.txt +++ b/src/3rd_party/CMakeLists.txt @@ -334,8 +334,8 @@ if (HMIADAPTER STREQUAL "messagebroker") DOWNLOAD_DIR ${BOOST_LIB_SOURCE_DIRECTORY} SOURCE_DIR ${BOOST_LIB_SOURCE_DIRECTORY} CONFIGURE_COMMAND ./bootstrap.sh --with-libraries=system --prefix=${3RD_PARTY_INSTALL_PREFIX} - BUILD_COMMAND sudo ./b2 install --with-system --prefix=${3RD_PARTY_INSTALL_PREFIX} - INSTALL_COMMAND "" + BUILD_COMMAND ./b2 + INSTALL_COMMAND sudo ./b2 install --with-system --prefix=${3RD_PARTY_INSTALL_PREFIX} INSTALL_DIR ${3RD_PARTY_INSTALL_PREFIX} BUILD_IN_SOURCE true ) diff --git a/src/components/hmi_message_handler/src/websocket_session.cc b/src/components/hmi_message_handler/src/websocket_session.cc index 2e9ec1890b..8dc03d85d2 100644 --- a/src/components/hmi_message_handler/src/websocket_session.cc +++ b/src/components/hmi_message_handler/src/websocket_session.cc @@ -205,10 +205,34 @@ std::string WebsocketSession::findMethodById(std::string id) { bool WebsocketSession::checkMessage(Json::Value& root, Json::Value& error) { Json::Value err; - try { - /* check the JSON-RPC version => 2.0 */ - if (!root.isObject() || !root.isMember("jsonrpc") || - root["jsonrpc"] != "2.0") { + /* check the JSON-RPC version => 2.0 */ + if (!root.isObject() || !root.isMember("jsonrpc") || + root["jsonrpc"] != "2.0") { + error["id"] = Json::Value::null; + error["jsonrpc"] = "2.0"; + err["code"] = hmi_message_handler::INVALID_REQUEST; + err["message"] = "Invalid MessageBroker request."; + error["error"] = err; + return false; + } + + if (root.isMember("id") && + (root["id"].isArray() || root["id"].isObject())) { + error["id"] = Json::Value::null; + error["jsonrpc"] = "2.0"; + err["code"] = hmi_message_handler::INVALID_REQUEST; + err["message"] = "Invalid MessageBroker request."; + error["error"] = err; + return false; + } + + if (root.isMember("result") && root.isMember("error")) { + /* message can't contain simultaneously result and error*/ + return false; + } + + if (root.isMember("method")) { + if (!root["method"].isString()) { error["id"] = Json::Value::null; error["jsonrpc"] = "2.0"; err["code"] = hmi_message_handler::INVALID_REQUEST; @@ -216,50 +240,19 @@ bool WebsocketSession::checkMessage(Json::Value& root, Json::Value& error) { error["error"] = err; return false; } - - if (root.isMember("id") && - (root["id"].isArray() || root["id"].isObject())) { + /* Check the params is an object*/ + if (root.isMember("params") && !root["params"].isObject()) { error["id"] = Json::Value::null; error["jsonrpc"] = "2.0"; - err["code"] = hmi_message_handler::INVALID_REQUEST; - err["message"] = "Invalid MessageBroker request."; + err["code"] = INVALID_REQUEST; + err["message"] = "Invalid JSONRPC params."; error["error"] = err; return false; } - - if (root.isMember("result") && root.isMember("error")) { - /* message can't contain simultaneously result and error*/ - return false; - } - - if (root.isMember("method")) { - if (!root["method"].isString()) { - error["id"] = Json::Value::null; - error["jsonrpc"] = "2.0"; - err["code"] = hmi_message_handler::INVALID_REQUEST; - err["message"] = "Invalid MessageBroker request."; - error["error"] = err; - return false; - } - /* Check the params is an object*/ - if (root.isMember("params") && !root["params"].isObject()) { - error["id"] = Json::Value::null; - error["jsonrpc"] = "2.0"; - err["code"] = INVALID_REQUEST; - err["message"] = "Invalid JSONRPC params."; - error["error"] = err; - return false; - } - } else if (!root.isMember("result") && !root.isMember("error")) { - return false; - } - return true; - } catch (...) { - LOG4CXX_ERROR( - ws_logger_, - "CMessageBrokerController::checkMessage() EXCEPTION has been caught!"); + } else if (!root.isMember("result") && !root.isMember("error")) { return false; } + return true; } WebsocketSession::LoopThreadDelegate::LoopThreadDelegate( |