diff --git a/frameworks/js/napi/websocket/async_context/src/send_context.cpp b/frameworks/js/napi/websocket/async_context/src/send_context.cpp index 40770c2707460bafd142127cc614bbee778cf574..788b6d4a29957964d51385602aeab982420e658e 100644 --- a/frameworks/js/napi/websocket/async_context/src/send_context.cpp +++ b/frameworks/js/napi/websocket/async_context/src/send_context.cpp @@ -59,8 +59,8 @@ bool SendContext::HandleParseArrayBuffer(napi_value *params) NETSTACK_LOGD("SendContext data is ArrayBuffer"); size_t len = 0; void *mem = NapiUtils::GetInfoFromArrayBufferValue(GetEnv(), params[0], &len); - if (mem == nullptr || len == 0) { - NETSTACK_LOGE("no memory"); + if (mem == nullptr && len != 0) { + NETSTACK_LOGE("Get Info error"); return false; } // must have PRE and POST diff --git a/frameworks/js/napi/websocket/async_context/src/server_send_context.cpp b/frameworks/js/napi/websocket/async_context/src/server_send_context.cpp index a8c50668b3f56dd6f54864c28f7cac7161c866cb..8362e9391eb4b1e4fb95a91bb9335805c05db081 100644 --- a/frameworks/js/napi/websocket/async_context/src/server_send_context.cpp +++ b/frameworks/js/napi/websocket/async_context/src/server_send_context.cpp @@ -118,8 +118,8 @@ bool ServerSendContext::HandleParseArrayBuffer(napi_value *params) NETSTACK_LOGI("ServerSendContext data is ArrayBuffer"); size_t len = 0; void *mem = NapiUtils::GetInfoFromArrayBufferValue(GetEnv(), params[0], &len); - if (mem == nullptr || len == 0) { - NETSTACK_LOGE("no memory"); + if (mem == nullptr && len != 0) { + NETSTACK_LOGE("Get info error"); return false; } // must have PRE and POST diff --git a/frameworks/js/napi/websocket/websocket_exec/src/websocket_exec.cpp b/frameworks/js/napi/websocket/websocket_exec/src/websocket_exec.cpp index c771527624f32e23f428e559fe206a1049bf0f76..3c2c92dd4d3b5b4b3542bede52b66b5f6a931472 100644 --- a/frameworks/js/napi/websocket/websocket_exec/src/websocket_exec.cpp +++ b/frameworks/js/napi/websocket/websocket_exec/src/websocket_exec.cpp @@ -278,7 +278,7 @@ int WebSocketExec::LwsCallbackClientWritable(lws *wsi, lws_callback_reasons reas return -1; } auto sendData = userData->Pop(); - if (sendData.data == nullptr || sendData.length == 0) { + if (sendData.data == nullptr) { return HttpDummy(wsi, reason, user, in, len); } int sendLength = lws_write(wsi, reinterpret_cast(sendData.data) + LWS_SEND_BUFFER_PRE_PADDING, diff --git a/frameworks/js/napi/websocket/websocket_exec/src/websocket_server_exec.cpp b/frameworks/js/napi/websocket/websocket_exec/src/websocket_server_exec.cpp index 8b7181a0dd6da9f5bac8238f762b5c80f0d282e7..8cabf452557e12f8e5c07c36e10a2c52f6fd9457 100644 --- a/frameworks/js/napi/websocket/websocket_exec/src/websocket_server_exec.cpp +++ b/frameworks/js/napi/websocket/websocket_exec/src/websocket_server_exec.cpp @@ -480,7 +480,7 @@ int WebSocketServerExec::LwsCallbackServerWriteable(lws *wsi, lws_callback_reaso return -1; } auto sendData = clientUserData->Pop(); - if (sendData.data == nullptr || sendData.length == 0) { + if (sendData.data == nullptr) { NETSTACK_LOGE("send data is empty"); return HttpDummy(wsi, reason, user, in, len); } @@ -680,19 +680,26 @@ static napi_value ConvertWsBinaryMessageToJs(napi_env env, const WebSocketMessag } void *data = nullptr; napi_value arrayBuffer = NapiUtils::CreateArrayBuffer(env, msg->data.size(), &data); - if (data != nullptr && NapiUtils::ValueIsArrayBuffer(env, arrayBuffer) && - memcpy_s(data, msg->data.size(), msg->data.c_str(), msg->data.size()) >= 0) { - NapiUtils::SetNamedProperty(env, jsMsg, "data", arrayBuffer); - napi_value jsConn = NapiUtils::CreateObject(env); - if (NapiUtils::GetValueType(env, jsConn) != napi_object) { + if (!NapiUtils::ValueIsArrayBuffer(env, arrayBuffer)) { + return NapiUtils::GetUndefined(env); + } + if (msg->data.size() > 0) { + if (data == nullptr) { + return NapiUtils::GetUndefined(env); + } + if (memcpy_s(data, msg->data.size(), msg->data.c_str(), msg->data.size()) != EOK) { return NapiUtils::GetUndefined(env); } - NapiUtils::SetStringPropertyUtf8(env, jsConn, EVENT_KEY_CLIENT_IP, msg->connection.clientIP); - NapiUtils::SetUint32Property(env, jsConn, EVENT_KEY_CLIENT_PORT, msg->connection.clientPort); - NapiUtils::SetNamedProperty(env, jsMsg, EVENT_KEY_CONNECTION, jsConn); - return jsMsg; } - return NapiUtils::GetUndefined(env); + NapiUtils::SetNamedProperty(env, jsMsg, "data", arrayBuffer); + napi_value jsConn = NapiUtils::CreateObject(env); + if (NapiUtils::GetValueType(env, jsConn) != napi_object) { + return NapiUtils::GetUndefined(env); + } + NapiUtils::SetStringPropertyUtf8(env, jsConn, EVENT_KEY_CLIENT_IP, msg->connection.clientIP); + NapiUtils::SetUint32Property(env, jsConn, EVENT_KEY_CLIENT_PORT, msg->connection.clientPort); + NapiUtils::SetNamedProperty(env, jsMsg, EVENT_KEY_CONNECTION, jsConn); + return jsMsg; } static napi_value CreateServerBinaryMessagePara(napi_env env, void *callbackPara) @@ -917,10 +924,6 @@ void WebSocketServerExec::HandleServerRcvMessage(lws *wsi, EventManager *manager manager->AppendWsServerBinaryData(wsi, data, length); if (isFinal) { const std::string &msgFromManager = manager->GetWsServerBinaryData(wsi); - if (msgFromManager.empty()) { - NETSTACK_LOGE("msgFromManager is empty"); - return; - } auto msg = new WebSocketMessage; if (msg == nullptr) { return; @@ -936,10 +939,6 @@ void WebSocketServerExec::HandleServerRcvMessage(lws *wsi, EventManager *manager manager->AppendWsServerTextData(wsi, data, length); if (isFinal) { const std::string &msgFromManager = manager->GetWsServerTextData(wsi); - if (msgFromManager.empty()) { - NETSTACK_LOGE("msgFromManager is empty"); - return; - } auto msg = new WebSocketMessage; if (msg == nullptr) { return; diff --git a/utils/napi_utils/src/napi_utils.cpp b/utils/napi_utils/src/napi_utils.cpp index 47afe60d75cd65b648ade64bd12f2e60a4ee01b3..62c662674f51728289ac5ca302b94efd8f94fee0 100644 --- a/utils/napi_utils/src/napi_utils.cpp +++ b/utils/napi_utils/src/napi_utils.cpp @@ -422,10 +422,6 @@ bool ValueIsArrayBuffer(napi_env env, napi_value value) void *GetInfoFromArrayBufferValue(napi_env env, napi_value value, size_t *length) { - if (length == nullptr) { - return nullptr; - } - void *data = nullptr; NAPI_CALL(env, napi_get_arraybuffer_info(env, value, &data, length)); return data; @@ -433,9 +429,6 @@ void *GetInfoFromArrayBufferValue(napi_env env, napi_value value, size_t *length napi_value CreateArrayBuffer(napi_env env, size_t length, void **data) { - if (length == 0) { - return nullptr; - } napi_value result = nullptr; NAPI_CALL(env, napi_create_arraybuffer(env, length, data, &result)); return result;