diff --git a/bundle.json b/bundle.json index 79d748e84db182ef810c93b814aa84fda988c1af..90ca8ccbb2354c7b0f649f69a17e0c1f9d6d33bc 100644 --- a/bundle.json +++ b/bundle.json @@ -122,24 +122,7 @@ } ], "test": [ - "//foundation/communication/netstack/test/fuzztest/socket:fuzztest", - "//foundation/communication/netstack/test/fuzztest/http_fuzzer:fuzztest", - "//foundation/communication/netstack/test/fuzztest/netssl:fuzztest", - "//foundation/communication/netstack/test/fuzztest/websocket:fuzztest", - "//foundation/communication/netstack/test/unittest/http:unittest", - "//foundation/communication/netstack/test/unittest/http/cache:unittest", - "//foundation/communication/netstack/test/unittest/http_client:unittest", - "//foundation/communication/netstack/test/unittest/socket:unittest", - "//foundation/communication/netstack/test/unittest/tlssocket:unittest", - "//foundation/communication/netstack/test/unittest/netssl:unittest", - "//foundation/communication/netstack/test/unittest/websocket:unittest", - "//foundation/communication/netstack/test/unittest/websocket_inner_unittest:unittest", - "//foundation/communication/netstack/test/unittest/websocket_capi_unittest:unittest", - "//foundation/communication/netstack/test/fuzztest/websocketinnerapi_fuzzer:fuzztest", - "//foundation/communication/netstack/test/fuzztest/websocketcapi_fuzzer:fuzztest", - "//foundation/communication/netstack/test/fuzztest/netsslinner_fuzzer:fuzztest", - "//foundation/communication/netstack/test/unittest/utils/common_utils:unittest", - "//foundation/communication/netstack/test/unittest/utils/profiler_utils:unittest" + "//foundation/communication/netstack/test:netstack_test" ] } } diff --git a/frameworks/js/napi/fetch/async_context/include/fetch_context.h b/frameworks/js/napi/fetch/async_context/include/fetch_context.h index f2aee89f2e4059827a99c49890d5b4e254082211..bbe6696aa3820d08dd49dcdb81b124e1f44b6457 100644 --- a/frameworks/js/napi/fetch/async_context/include/fetch_context.h +++ b/frameworks/js/napi/fetch/async_context/include/fetch_context.h @@ -28,7 +28,7 @@ public: FetchContext() = delete; - explicit FetchContext(napi_env env, EventManager *manager); + explicit FetchContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/fetch/async_context/src/fetch_context.cpp b/frameworks/js/napi/fetch/async_context/src/fetch_context.cpp index 287ebf3d817c616b28a8304e17f0496bfc92a65d..d1d73a28cc684c55c3dc275f9d84cda7542ce12f 100644 --- a/frameworks/js/napi/fetch/async_context/src/fetch_context.cpp +++ b/frameworks/js/napi/fetch/async_context/src/fetch_context.cpp @@ -22,7 +22,7 @@ #include "napi_utils.h" namespace OHOS::NetStack::Fetch { -FetchContext::FetchContext(napi_env env, EventManager *manager) +FetchContext::FetchContext(napi_env env, const std::shared_ptr &manager) : BaseContext(env, manager), successCallback_(nullptr), failCallback_(nullptr), completeCallback_(nullptr) { } diff --git a/frameworks/js/napi/fetch/fetch_module/src/fetch_module.cpp b/frameworks/js/napi/fetch/fetch_module/src/fetch_module.cpp index c80d2979223be94925d84993d2fa945b5cc6a002..9bf3fc6a7ec5c4a4c46e17b7834ff24cdb02b7ed 100644 --- a/frameworks/js/napi/fetch/fetch_module/src/fetch_module.cpp +++ b/frameworks/js/napi/fetch/fetch_module/src/fetch_module.cpp @@ -34,7 +34,7 @@ napi_value FetchModule::InitFetchModule(napi_env env, napi_value exports) napi_value FetchModule::Fetch(napi_env env, napi_callback_info info) { NETSTACK_LOGI("FetchModule::Fetch is called"); - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_FETCH, [](napi_env, napi_value, FetchContext *) -> bool { return FetchExec::Initialize(); }, FetchAsyncWork::ExecFetch, FetchAsyncWork::FetchCallback); } diff --git a/frameworks/js/napi/http/async_context/include/request_context.h b/frameworks/js/napi/http/async_context/include/request_context.h index 0708c8c902d4fef4dfeac7e33a31778f17fdeba8..dc7a92c9e701d7888bf5fe6c501537325c5c73af 100644 --- a/frameworks/js/napi/http/async_context/include/request_context.h +++ b/frameworks/js/napi/http/async_context/include/request_context.h @@ -56,7 +56,7 @@ public: RequestContext() = delete; - RequestContext(napi_env env, EventManager *manager); + RequestContext(napi_env env, const std::shared_ptr &manager); ~RequestContext() override; diff --git a/frameworks/js/napi/http/async_context/src/request_context.cpp b/frameworks/js/napi/http/async_context/src/request_context.cpp index 5c2b5f8bc11386278df557ad6197af6f7b610cdd..38b5224bf82c15757e36392120b6064a0cbf876a 100755 --- a/frameworks/js/napi/http/async_context/src/request_context.cpp +++ b/frameworks/js/napi/http/async_context/src/request_context.cpp @@ -80,7 +80,7 @@ static const std::map HTTP_ERR_MAP = { {HTTP_UNKNOWN_OTHER_ERROR, "Unknown Other Error"}, }; static std::atomic g_currentTaskId = std::numeric_limits::min(); -RequestContext::RequestContext(napi_env env, EventManager *manager) +RequestContext::RequestContext(napi_env env, const std::shared_ptr &manager) : BaseContext(env, manager), taskId_(g_currentTaskId++), usingCache_(true), diff --git a/frameworks/js/napi/net_ssl/async_context/include/cert_context.h b/frameworks/js/napi/net_ssl/async_context/include/cert_context.h index 2121b65c00a6289450b48034a49b3ee0a02dbe1c..5098ca20101f380a639ba71168ffc1f90865ecf9 100644 --- a/frameworks/js/napi/net_ssl/async_context/include/cert_context.h +++ b/frameworks/js/napi/net_ssl/async_context/include/cert_context.h @@ -24,7 +24,7 @@ class CertContext final : public BaseContext { public: CertContext() = delete; - CertContext(napi_env env, EventManager *manager); + CertContext(napi_env env, const std::shared_ptr &manager); ~CertContext() override; diff --git a/frameworks/js/napi/net_ssl/async_context/include/cleartext_context.h b/frameworks/js/napi/net_ssl/async_context/include/cleartext_context.h index 8522704b5903256e4fcb100508fa03cd9b9a5691..782f7da2b762c4a56e832735045592452a5ec545 100644 --- a/frameworks/js/napi/net_ssl/async_context/include/cleartext_context.h +++ b/frameworks/js/napi/net_ssl/async_context/include/cleartext_context.h @@ -28,7 +28,7 @@ static constexpr const size_t MAX_ERR_NUM = 256; class CleartextContext final : public BaseContext { public: CleartextContext() = delete; - explicit CleartextContext(napi_env env, EventManager *manager); + explicit CleartextContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; [[nodiscard]] std::string GetErrorMessage() const override; @@ -39,7 +39,7 @@ public: class CleartextForHostContext final : public BaseContext { public: CleartextForHostContext() = delete; - explicit CleartextForHostContext(napi_env env, EventManager *manager); + explicit CleartextForHostContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; [[nodiscard]] std::string GetErrorMessage() const override; diff --git a/frameworks/js/napi/net_ssl/async_context/src/cert_context.cpp b/frameworks/js/napi/net_ssl/async_context/src/cert_context.cpp index afc466bde7acb8efb306ca8d4bc9f6a7f7c708a6..ffb1d5598dd748ca158a667556a73b535ad6ea27 100644 --- a/frameworks/js/napi/net_ssl/async_context/src/cert_context.cpp +++ b/frameworks/js/napi/net_ssl/async_context/src/cert_context.cpp @@ -55,11 +55,8 @@ static const std::map SSL_ERR_MAP = { {SslErrorCode::SSL_X509_V_ERR_INVALID_CALL, "invalid certificate verification context."} }; -CertContext::CertContext(napi_env env, EventManager *manager) - : BaseContext(env, manager), certBlob_(nullptr), certBlobClient_(nullptr) -{ - manager_ = new EventManager; -} +CertContext::CertContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager), certBlob_(nullptr), certBlobClient_(nullptr) {} void CertContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -212,10 +209,6 @@ CertContext::~CertContext() delete certBlobClient_; certBlobClient_ = nullptr; } - if (manager_ != nullptr) { - delete manager_; - manager_ = nullptr; - } NETSTACK_LOGD("CertContext is destructed by the destructor"); } } // namespace OHOS::NetStack::Ssl diff --git a/frameworks/js/napi/net_ssl/async_context/src/cleartext_context.cpp b/frameworks/js/napi/net_ssl/async_context/src/cleartext_context.cpp index 280359c0321db438d53bcb821404ab4047910e02..e36660ecbe2e017ebbd53f2dd46b127cb8233c04 100644 --- a/frameworks/js/napi/net_ssl/async_context/src/cleartext_context.cpp +++ b/frameworks/js/napi/net_ssl/async_context/src/cleartext_context.cpp @@ -21,7 +21,8 @@ #endif // HAS_NETMANAGER_BASE namespace OHOS::NetStack::Ssl { -CleartextContext::CleartextContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +CleartextContext::CleartextContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void CleartextContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -48,8 +49,8 @@ std::string CleartextContext::GetErrorMessage() const return err; } -CleartextForHostContext::CleartextForHostContext(napi_env env, - EventManager *manager) : BaseContext(env, manager) {} +CleartextForHostContext::CleartextForHostContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void CleartextForHostContext::ParseParams(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/net_ssl/net_ssl_exec/src/net_ssl_exec.cpp b/frameworks/js/napi/net_ssl/net_ssl_exec/src/net_ssl_exec.cpp index 52d0cfe4c6be881f01270673d78554af507c9acf..fcefcef4c5d668e54b1ea883f4b32d8703fb650f 100644 --- a/frameworks/js/napi/net_ssl/net_ssl_exec/src/net_ssl_exec.cpp +++ b/frameworks/js/napi/net_ssl/net_ssl_exec/src/net_ssl_exec.cpp @@ -21,29 +21,11 @@ #include "netstack_log.h" namespace OHOS::NetStack::Ssl { -template static void CallbackTemplate(uv_work_t *work, int status) -{ - (void)status; - - auto workWrapper = static_cast(work->data); - napi_env env = workWrapper->env; - auto closeScope = [env](napi_handle_scope scope) { NapiUtils::CloseScope(env, scope); }; - std::unique_ptr scope(NapiUtils::OpenScope(env), closeScope); - - napi_value obj = MakeJsValue(env, workWrapper->data); - - std::pair arg = {NapiUtils::GetUndefined(workWrapper->env), obj}; - workWrapper->manager->Emit(workWrapper->type, arg); - - delete workWrapper; - delete work; -} - bool SslExec::ExecVerify(CertContext *context) { context->SetPermissionDenied(true); - - if (context->GetManager()->IsEventDestroy()) { + auto sharedManager = context->GetSharedManager(); + if (sharedManager == nullptr || sharedManager->IsEventDestroy()) { return false; } @@ -60,18 +42,14 @@ bool SslExec::ExecVerify(CertContext *context) NETSTACK_LOGD("verifyResult is %{public}d\n", context->GetErrorCode()); if (context->GetErrorCode() != 0) { - if (EventManager::IsManagerValid(context->GetManager())) { - NapiUtils::CreateUvQueueWorkEnhanced(context->GetEnv(), context, NetSslAsyncWork::VerifyCallback); - } + NapiUtils::CreateUvQueueWorkEnhanced(context->GetEnv(), context, NetSslAsyncWork::VerifyCallback); return false; } } else { context->SetErrorCode(NetStackVerifyCertification(context->GetCertBlob(), context->GetCertBlobClient())); NETSTACK_LOGD("verifyResult is %{public}d\n", context->GetErrorCode()); if (context->GetErrorCode() != 0) { - if (EventManager::IsManagerValid(context->GetManager())) { - NapiUtils::CreateUvQueueWorkEnhanced(context->GetEnv(), context, NetSslAsyncWork::VerifyCallback); - } + NapiUtils::CreateUvQueueWorkEnhanced(context->GetEnv(), context, NetSslAsyncWork::VerifyCallback); return false; } } diff --git a/frameworks/js/napi/net_ssl/net_ssl_module/src/net_ssl_module.cpp b/frameworks/js/napi/net_ssl/net_ssl_module/src/net_ssl_module.cpp index 3400188f665e95d5a0b54e3f0ec72c7f0a2140b7..1c3c8d1c00ceb4e661c730992214fef726c706a2 100644 --- a/frameworks/js/napi/net_ssl/net_ssl_module/src/net_ssl_module.cpp +++ b/frameworks/js/napi/net_ssl/net_ssl_module/src/net_ssl_module.cpp @@ -79,7 +79,7 @@ void NetSslModuleExports::InitCertType(napi_env env, napi_value exports) napi_value NetSslModuleExports::VerifyCertification(napi_env env, napi_callback_info info) { - return ModuleTemplate::InterfaceWithOutAsyncWork( + return ModuleTemplate::InterfaceWithOutAsyncWorkWithSharedManager( env, info, [](napi_env, napi_value, CertContext *context) -> bool { SslExec::AsyncRunVerify(context); @@ -94,7 +94,7 @@ napi_value NetSslModuleExports::VerifyCertificationSync(napi_env env, napi_callb size_t paramsCount = MAX_PARAM_NUM; napi_value params[MAX_PARAM_NUM] = {nullptr}; NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); - EventManager *manager = nullptr; + std::shared_ptr manager = nullptr; auto context = std::make_unique(env, manager); context->ParseParams(params, paramsCount); if (context->GetErrorCode() != PARSE_ERROR_CODE) { @@ -136,7 +136,7 @@ napi_value NetSslModuleExports::IsCleartextPermitted(napi_env env, napi_callback size_t paramsCount = MAX_PARAM_NUM; napi_value params[MAX_PARAM_NUM] = {nullptr}; NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); - EventManager *manager = nullptr; + std::shared_ptr manager = nullptr; auto context = std::make_unique(env, manager); if (!context) { return NapiUtils::GetUndefined(env); @@ -168,7 +168,7 @@ napi_value NetSslModuleExports::IsCleartextPermittedByHostName(napi_env env, nap size_t paramsCount = MAX_PARAM_NUM; napi_value params[MAX_PARAM_NUM] = {nullptr}; NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); - EventManager *manager = nullptr; + std::shared_ptr manager = nullptr; auto context = std::make_unique(env, manager); if (!context) { return NapiUtils::GetUndefined(env); diff --git a/frameworks/js/napi/proxy/src/socks5_instance.cpp b/frameworks/js/napi/proxy/src/socks5_instance.cpp index abbeea32000d1c68c9b9ccac559cf6358cd07787..f96cf7ab832b7446b7c9b37af959c74001538a25 100644 --- a/frameworks/js/napi/proxy/src/socks5_instance.cpp +++ b/frameworks/js/napi/proxy/src/socks5_instance.cpp @@ -180,7 +180,7 @@ static bool SocketRecvHandle(int socketId, std::pair &, Socks5::Socks5Utils::PrintRecvErrMsg(socketId, errCode, recvLen, "SocketRecvHandle"); auto manager = callback.GetEventManager(); - if (EventManager::IsManagerValid(manager)) { + if (manager != nullptr) { manager->GetProxyData()->OnProxySocketError(); } else { NETSTACK_LOGE("manager is error"); diff --git a/frameworks/js/napi/socket/async_context/include/bind_context.h b/frameworks/js/napi/socket/async_context/include/bind_context.h index b31c1e069045d1b301731e6020e11e0bfeae05a4..416c55cb5b2aa0666b52a32335e00964f3d340a8 100644 --- a/frameworks/js/napi/socket/async_context/include/bind_context.h +++ b/frameworks/js/napi/socket/async_context/include/bind_context.h @@ -30,7 +30,7 @@ public: BindContext() = delete; - explicit BindContext(napi_env env, EventManager *manager); + explicit BindContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/common_context.h b/frameworks/js/napi/socket/async_context/include/common_context.h index fb4f36b43cc17da782d6cf33853635de95772aec..91f0a1651140fe581487b3d01c67bf591eab2174 100644 --- a/frameworks/js/napi/socket/async_context/include/common_context.h +++ b/frameworks/js/napi/socket/async_context/include/common_context.h @@ -32,7 +32,7 @@ public: CommonContext() = delete; - explicit CommonContext(napi_env env, EventManager *manager); + explicit CommonContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; @@ -68,7 +68,7 @@ public: CloseContext() = delete; - explicit CloseContext(napi_env env, EventManager *manager); + explicit CloseContext(napi_env env, const std::shared_ptr &manager); void SetSocketFd(int sock); }; diff --git a/frameworks/js/napi/socket/async_context/include/connect_context.h b/frameworks/js/napi/socket/async_context/include/connect_context.h index 9bc149789ee7907f0e97442dd088a77eceff8c19..6122fa5adff1d8e7dc773ce80cbe192c4ab17787 100644 --- a/frameworks/js/napi/socket/async_context/include/connect_context.h +++ b/frameworks/js/napi/socket/async_context/include/connect_context.h @@ -32,7 +32,7 @@ public: ConnectContext() = delete; - explicit ConnectContext(napi_env env, EventManager *manager); + explicit ConnectContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/local_socket_context.h b/frameworks/js/napi/socket/async_context/include/local_socket_context.h index f666dcaa71d74dd39a899ef773c554580e839df1..ed9399d0c476425469e558a4c05365a0d53988c6 100644 --- a/frameworks/js/napi/socket/async_context/include/local_socket_context.h +++ b/frameworks/js/napi/socket/async_context/include/local_socket_context.h @@ -50,7 +50,8 @@ class LocalSocketBaseContext : public BaseContext { public: DISALLOW_COPY_AND_MOVE(LocalSocketBaseContext); virtual ~LocalSocketBaseContext() {} - LocalSocketBaseContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} + LocalSocketBaseContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} [[nodiscard]] virtual int GetSocketFd() const; virtual void SetSocketFd(int sock); [[nodiscard]] int32_t GetErrorCode() const override; @@ -63,7 +64,8 @@ protected: class LocalSocketBindContext final : public LocalSocketBaseContext { public: - LocalSocketBindContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketBindContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; const std::string &GetSocketPath() const; @@ -73,7 +75,8 @@ private: class LocalSocketGetLocalAddressContext final : public LocalSocketBaseContext { public: - LocalSocketGetLocalAddressContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketGetLocalAddressContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; void SetSocketPath(const std::string socketPath); std::string GetSocketPath(); @@ -84,7 +87,8 @@ private: class LocalSocketConnectContext final : public LocalSocketBaseContext { public: - LocalSocketConnectContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketConnectContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; const std::string &GetSocketPath() const; int GetTimeoutMs() const; @@ -96,7 +100,8 @@ private: class LocalSocketSendContext final : public LocalSocketBaseContext { public: - LocalSocketSendContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketSendContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; LocalSocketOptions &GetOptionsRef(); @@ -107,13 +112,15 @@ private: class LocalSocketCloseContext final : public LocalSocketBaseContext { public: - LocalSocketCloseContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketCloseContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; }; class LocalSocketGetStateContext final : public LocalSocketBaseContext { public: - LocalSocketGetStateContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketGetStateContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; SocketStateBase &GetStateRef(); @@ -123,13 +130,15 @@ private: class LocalSocketGetSocketFdContext final : public LocalSocketBaseContext { public: - LocalSocketGetSocketFdContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketGetSocketFdContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; }; class LocalSocketSetExtraOptionsContext final : public LocalSocketBaseContext { public: - LocalSocketSetExtraOptionsContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; LocalExtraOptions &GetOptionsRef(); @@ -139,7 +148,8 @@ private: class LocalSocketGetExtraOptionsContext final : public LocalSocketBaseContext { public: - LocalSocketGetExtraOptionsContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketGetExtraOptionsContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; LocalExtraOptions &GetOptionsRef(); diff --git a/frameworks/js/napi/socket/async_context/include/local_socket_server_context.h b/frameworks/js/napi/socket/async_context/include/local_socket_server_context.h index ccea3b686e0ba7cebd875f666ecb51fd22e5cf43..8529591f9707dec21766c0961c39d914cc74a6af 100644 --- a/frameworks/js/napi/socket/async_context/include/local_socket_server_context.h +++ b/frameworks/js/napi/socket/async_context/include/local_socket_server_context.h @@ -54,7 +54,7 @@ struct LocalSocketServerManager : public SocketBaseManager { std::mutex clientMutex_; std::condition_variable cond_; std::map acceptFds_; // id & fd - std::map clientEventManagers_; // id & EventManager* + std::map> clientEventManagers_; // id & EventManager* explicit LocalSocketServerManager(int sockfd) : SocketBaseManager(sockfd) {} void SetServerDestructStatus(bool flag) @@ -104,7 +104,7 @@ struct LocalSocketServerManager : public SocketBaseManager { } return -1; } - EventManager *GetManager(int id) + std::shared_ptr GetSharedManager(int id) { std::lock_guard lock(clientMutex_); if (auto ite = clientEventManagers_.find(id); ite != clientEventManagers_.end()) { @@ -154,9 +154,9 @@ struct LocalSocketServerManager : public SocketBaseManager { return acceptFds_.size(); } #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) - EventManager *WaitForManager(int clientId) + std::shared_ptr WaitForSharedManager(int clientId) { - EventManager *manager = nullptr; + std::shared_ptr manager = nullptr; std::unique_lock lock(clientMutex_); cond_.wait(lock, [&manager, &clientId, this]() { if (auto iter = clientEventManagers_.find(clientId); iter != clientEventManagers_.end()) { @@ -175,7 +175,7 @@ struct LocalSocketServerManager : public SocketBaseManager { std::lock_guard lock(clientMutex_); cond_.notify_one(); } - void AddEventManager(int clientId, EventManager *manager) + void AddEventManager(int clientId, std::shared_ptr &manager) { std::lock_guard lock(clientMutex_); clientEventManagers_.insert(std::make_pair(clientId, manager)); @@ -185,16 +185,12 @@ struct LocalSocketServerManager : public SocketBaseManager { { std::lock_guard lock(clientMutex_); if (auto ite = clientEventManagers_.find(clientId); ite != clientEventManagers_.end()) { - EventManager::SetInvalid(ite->second); clientEventManagers_.erase(ite); } } void RemoveAllEventManager() { std::lock_guard lock(clientMutex_); - for (const auto &[id, manager] : clientEventManagers_) { - EventManager::SetInvalid(manager); - } clientEventManagers_.clear(); } #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) @@ -221,14 +217,16 @@ struct LocalSocketServerManager : public SocketBaseManager { class LocalSocketServerBaseContext : public LocalSocketBaseContext { public: - LocalSocketServerBaseContext(napi_env env, EventManager *manager) : LocalSocketBaseContext(env, manager) {} + LocalSocketServerBaseContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketBaseContext(env, manager) {} [[nodiscard]] int GetSocketFd() const override; void SetSocketFd(int sock) override; }; class LocalSocketServerListenContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerListenContext(napi_env env, EventManager *manager) : LocalSocketServerBaseContext(env, manager) {} + LocalSocketServerListenContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketServerBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; const std::string &GetSocketPath() const; @@ -238,13 +236,15 @@ private: class LocalSocketServerEndContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerEndContext(napi_env env, EventManager *manager) : LocalSocketServerBaseContext(env, manager) {} + LocalSocketServerEndContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketServerBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; }; class LocalSocketServerGetStateContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerGetStateContext(napi_env env, EventManager *manager) : LocalSocketServerBaseContext(env, manager) + LocalSocketServerGetStateContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketServerBaseContext(env, manager) { } void ParseParams(napi_value *params, size_t paramsCount) override; @@ -256,7 +256,7 @@ private: class LocalSocketServerGetLocalAddressContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerGetLocalAddressContext(napi_env env, EventManager *manager) + LocalSocketServerGetLocalAddressContext(napi_env env, const std::shared_ptr &manager) : LocalSocketServerBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; void SetSocketPath(const std::string socketPath); @@ -271,7 +271,7 @@ private: class LocalSocketServerSetExtraOptionsContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerSetExtraOptionsContext(napi_env env, EventManager *manager) + LocalSocketServerSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager) : LocalSocketServerBaseContext(env, manager) { } @@ -284,7 +284,7 @@ private: class LocalSocketServerGetExtraOptionsContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerGetExtraOptionsContext(napi_env env, EventManager *manager) + LocalSocketServerGetExtraOptionsContext(napi_env env, const std::shared_ptr &manager) : LocalSocketServerBaseContext(env, manager) { } @@ -297,7 +297,8 @@ private: class LocalSocketServerSendContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerSendContext(napi_env env, EventManager *manager) : LocalSocketServerBaseContext(env, manager) {} + LocalSocketServerSendContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketServerBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; int GetAcceptFd(); LocalSocketOptions &GetOptionsRef(); @@ -312,7 +313,8 @@ private: class LocalSocketServerCloseContext final : public LocalSocketServerBaseContext { public: - LocalSocketServerCloseContext(napi_env env, EventManager *manager) : LocalSocketServerBaseContext(env, manager) {} + LocalSocketServerCloseContext(napi_env env, const std::shared_ptr &manager) + : LocalSocketServerBaseContext(env, manager) {} void ParseParams(napi_value *params, size_t paramsCount) override; int GetClientId() const; void SetClientId(int clientId); diff --git a/frameworks/js/napi/socket/async_context/include/multicast_get_loopback_context.h b/frameworks/js/napi/socket/async_context/include/multicast_get_loopback_context.h index 679b63d05a6bcc5aae007d09d87b31da7b18380e..51d92747ab216f0a90fa7df7a55f3575629aca1b 100644 --- a/frameworks/js/napi/socket/async_context/include/multicast_get_loopback_context.h +++ b/frameworks/js/napi/socket/async_context/include/multicast_get_loopback_context.h @@ -29,7 +29,7 @@ public: MulticastGetLoopbackContext() = delete; - MulticastGetLoopbackContext(napi_env env, EventManager *manager); + MulticastGetLoopbackContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/multicast_get_ttl_context.h b/frameworks/js/napi/socket/async_context/include/multicast_get_ttl_context.h index b41591151d31e8ff0584f10277c4e48568102d67..a8a2096cb13d58c8d694c6dd36a9b6d0b53ad195 100644 --- a/frameworks/js/napi/socket/async_context/include/multicast_get_ttl_context.h +++ b/frameworks/js/napi/socket/async_context/include/multicast_get_ttl_context.h @@ -29,7 +29,7 @@ public: MulticastGetTTLContext() = delete; - MulticastGetTTLContext(napi_env env, EventManager *manager); + MulticastGetTTLContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/multicast_membership_context.h b/frameworks/js/napi/socket/async_context/include/multicast_membership_context.h index 25c0a6b7fd6d93d15d4258d2c2b78dddce01e09c..63effaa3b76377394457999520bfda13ad067523 100644 --- a/frameworks/js/napi/socket/async_context/include/multicast_membership_context.h +++ b/frameworks/js/napi/socket/async_context/include/multicast_membership_context.h @@ -30,7 +30,7 @@ public: MulticastMembershipContext() = delete; - MulticastMembershipContext(napi_env env, EventManager *manager); + MulticastMembershipContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/multicast_set_loopback_context.h b/frameworks/js/napi/socket/async_context/include/multicast_set_loopback_context.h index ebbb035b4fb446065b2a362b6547bca2ca5d4dbd..daea3a217aea4651f0f1ca7fe3ac5e29075a955a 100644 --- a/frameworks/js/napi/socket/async_context/include/multicast_set_loopback_context.h +++ b/frameworks/js/napi/socket/async_context/include/multicast_set_loopback_context.h @@ -29,7 +29,7 @@ public: MulticastSetLoopbackContext() = delete; - MulticastSetLoopbackContext(napi_env env, EventManager *manager); + MulticastSetLoopbackContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/multicast_set_ttl_context.h b/frameworks/js/napi/socket/async_context/include/multicast_set_ttl_context.h index c6c4e3a4ef7cdd89b634a56927c252b204647a76..7d2fa12216655df67d98f3d72faab6d0e6111b73 100644 --- a/frameworks/js/napi/socket/async_context/include/multicast_set_ttl_context.h +++ b/frameworks/js/napi/socket/async_context/include/multicast_set_ttl_context.h @@ -29,7 +29,7 @@ public: MulticastSetTTLContext() = delete; - MulticastSetTTLContext(napi_env env, EventManager *manager); + MulticastSetTTLContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/tcp_extra_context.h b/frameworks/js/napi/socket/async_context/include/tcp_extra_context.h index fda7c0b03b304f3383bad09191a16156a44e1e10..ed0d03fdd24aa93a9e8bd9dac0153747b89e8d18 100644 --- a/frameworks/js/napi/socket/async_context/include/tcp_extra_context.h +++ b/frameworks/js/napi/socket/async_context/include/tcp_extra_context.h @@ -30,7 +30,7 @@ public: TcpSetExtraOptionsContext() = delete; - explicit TcpSetExtraOptionsContext(napi_env env, EventManager *manager); + explicit TcpSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/tcp_send_context.h b/frameworks/js/napi/socket/async_context/include/tcp_send_context.h index c9570b8eb74c7a4d5ae0e92219edcfbf66074414..c9c852535e63e67f8875494ddfb4b4a002ac79fb 100644 --- a/frameworks/js/napi/socket/async_context/include/tcp_send_context.h +++ b/frameworks/js/napi/socket/async_context/include/tcp_send_context.h @@ -32,7 +32,7 @@ public: TcpSendContext() = delete; - explicit TcpSendContext(napi_env env, EventManager *manager); + explicit TcpSendContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/tcp_server_common_context.h b/frameworks/js/napi/socket/async_context/include/tcp_server_common_context.h index 1a95b13ab06c3c570ef260d550e43b0be5b17cb9..78745b33d87263cbd4abb8aee2527f852eb92f28 100644 --- a/frameworks/js/napi/socket/async_context/include/tcp_server_common_context.h +++ b/frameworks/js/napi/socket/async_context/include/tcp_server_common_context.h @@ -32,7 +32,7 @@ public: TcpServerCommonContext() = delete; - explicit TcpServerCommonContext(napi_env env, EventManager *manager); + explicit TcpServerCommonContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; @@ -64,7 +64,7 @@ public: TcpServerCloseContext() = delete; - explicit TcpServerCloseContext(napi_env env, EventManager *manager); + explicit TcpServerCloseContext(napi_env env, const std::shared_ptr &manager); void SetSocketFd(int sock); }; diff --git a/frameworks/js/napi/socket/async_context/include/tcp_server_extra_context.h b/frameworks/js/napi/socket/async_context/include/tcp_server_extra_context.h index d1cae7ff20024d208ec16b496991ece7f3afabe8..c6ce207985331e430bb84110a6b1e843fe20ddab 100644 --- a/frameworks/js/napi/socket/async_context/include/tcp_server_extra_context.h +++ b/frameworks/js/napi/socket/async_context/include/tcp_server_extra_context.h @@ -30,7 +30,7 @@ public: TcpServerSetExtraOptionsContext() = delete; - explicit TcpServerSetExtraOptionsContext(napi_env env, EventManager *manager); + explicit TcpServerSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/tcp_server_listen_context.h b/frameworks/js/napi/socket/async_context/include/tcp_server_listen_context.h index 864ee3d7a15752b1ee83313721bb53addf7129f1..6c5b3c4c4d8dc01e75fa554b6a864c3a9daa5471 100644 --- a/frameworks/js/napi/socket/async_context/include/tcp_server_listen_context.h +++ b/frameworks/js/napi/socket/async_context/include/tcp_server_listen_context.h @@ -30,7 +30,7 @@ public: TcpServerListenContext() = delete; - explicit TcpServerListenContext(napi_env env, EventManager *manager); + explicit TcpServerListenContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/tcp_server_send_context.h b/frameworks/js/napi/socket/async_context/include/tcp_server_send_context.h index 7070ad35e5bd493b47bb4132d97850cf2d972262..1529d6b0a7967ab694f2372d04ea5a9d9856d7a0 100644 --- a/frameworks/js/napi/socket/async_context/include/tcp_server_send_context.h +++ b/frameworks/js/napi/socket/async_context/include/tcp_server_send_context.h @@ -30,7 +30,7 @@ public: TcpServerSendContext() = delete; - explicit TcpServerSendContext(napi_env env, EventManager *manager); + explicit TcpServerSendContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/udp_extra_context.h b/frameworks/js/napi/socket/async_context/include/udp_extra_context.h index 3696efbbe4113d4366d6fa876613bd7a30c331df..62a3fe75375247596ebd85bb539a1555513b5acd 100644 --- a/frameworks/js/napi/socket/async_context/include/udp_extra_context.h +++ b/frameworks/js/napi/socket/async_context/include/udp_extra_context.h @@ -30,7 +30,7 @@ public: UdpSetExtraOptionsContext() = delete; - explicit UdpSetExtraOptionsContext(napi_env env, EventManager *manager); + explicit UdpSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/include/udp_send_context.h b/frameworks/js/napi/socket/async_context/include/udp_send_context.h index 9e3c48ebd1991d48e4dc847c38d16ac19e71f3ae..432a931892bf4d6457875583b111cde930922451 100644 --- a/frameworks/js/napi/socket/async_context/include/udp_send_context.h +++ b/frameworks/js/napi/socket/async_context/include/udp_send_context.h @@ -32,7 +32,7 @@ public: UdpSendContext() = delete; - explicit UdpSendContext(napi_env env, EventManager *manager); + explicit UdpSendContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/socket/async_context/src/bind_context.cpp b/frameworks/js/napi/socket/async_context/src/bind_context.cpp index 54701150fb1cd8b27b7268caac616ae6644b2f52..ab82aba6d3930cb58c8eb9bdcbeb58527e14ae9b 100644 --- a/frameworks/js/napi/socket/async_context/src/bind_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/bind_context.cpp @@ -22,7 +22,8 @@ #include "napi_utils.h" namespace OHOS::NetStack::Socket { -BindContext::BindContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +BindContext::BindContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void BindContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -73,10 +74,10 @@ void BindContext::ParseParams(napi_value *params, size_t paramsCount) int BindContext::GetSocketFd() const { - if (manager_ == nullptr) { + if (sharedManager_ == nullptr) { return -1; } - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool BindContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/common_context.cpp b/frameworks/js/napi/socket/async_context/src/common_context.cpp index 45714fd580ac029ea93033f81801f173da0b3bd3..b8edd46a85d8ee2d23cd20300ec8251e58d64343 100644 --- a/frameworks/js/napi/socket/async_context/src/common_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/common_context.cpp @@ -21,7 +21,8 @@ #include "napi_utils.h" namespace OHOS::NetStack::Socket { -CommonContext::CommonContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +CommonContext::CommonContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void CommonContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -45,7 +46,7 @@ void CommonContext::ParseParams(napi_value *params, size_t paramsCount) int CommonContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool CommonContext::CheckParamsType(napi_value *params, size_t paramsCount) @@ -60,11 +61,12 @@ bool CommonContext::CheckParamsType(napi_value *params, size_t paramsCount) return false; } -CloseContext::CloseContext(napi_env env, EventManager *manager) : CommonContext(env, manager) {} +CloseContext::CloseContext(napi_env env, const std::shared_ptr &manager) + : CommonContext(env, manager) {} void CloseContext::SetSocketFd(int sock) { - manager_->SetData(reinterpret_cast(sock)); + sharedManager_->SetData(reinterpret_cast(sock)); } int32_t CommonContext::GetErrorCode() const diff --git a/frameworks/js/napi/socket/async_context/src/connect_context.cpp b/frameworks/js/napi/socket/async_context/src/connect_context.cpp index 6000b1264b347f788092105c4732bddbe5124e3d..9bcb0cf670b05d0089498c334623f95300cdb30a 100644 --- a/frameworks/js/napi/socket/async_context/src/connect_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/connect_context.cpp @@ -24,7 +24,8 @@ #include "socket_exec_common.h" namespace OHOS::NetStack::Socket { -ConnectContext::ConnectContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +ConnectContext::ConnectContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void ConnectContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -85,7 +86,7 @@ void ConnectContext::ParseParams(napi_value *params, size_t paramsCount) int ConnectContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool ConnectContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/local_socket_context.cpp b/frameworks/js/napi/socket/async_context/src/local_socket_context.cpp index 7631e175f0f9536e2b037802b0678008becc5798..f566f4586531ae2ebea0fa71339bfdf3e7daca75 100644 --- a/frameworks/js/napi/socket/async_context/src/local_socket_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/local_socket_context.cpp @@ -23,19 +23,19 @@ namespace OHOS::NetStack::Socket { int LocalSocketBaseContext::GetSocketFd() const { - if (manager_ == nullptr) { + if (sharedManager_ == nullptr) { return -1; } - LocalSocketManager *pMgr = reinterpret_cast(manager_->GetData()); + LocalSocketManager *pMgr = reinterpret_cast(sharedManager_->GetData()); return (pMgr != nullptr) ? pMgr->sockfd_ : -1; } void LocalSocketBaseContext::SetSocketFd(int sock) { - if (manager_ == nullptr) { + if (sharedManager_ == nullptr) { return; } - if (auto pMgr = reinterpret_cast(manager_->GetData()); pMgr != nullptr) { + if (auto pMgr = reinterpret_cast(sharedManager_->GetData()); pMgr != nullptr) { pMgr->sockfd_ = sock; } } diff --git a/frameworks/js/napi/socket/async_context/src/local_socket_server_context.cpp b/frameworks/js/napi/socket/async_context/src/local_socket_server_context.cpp index c28b6a96c346cb69dfc60ed52dfe68f81a28b89e..2abee28fa2a4fecd539ee9b73cc69b3a573dc291 100644 --- a/frameworks/js/napi/socket/async_context/src/local_socket_server_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/local_socket_server_context.cpp @@ -24,19 +24,19 @@ namespace OHOS::NetStack::Socket { int LocalSocketServerBaseContext::GetSocketFd() const { - if (manager_ == nullptr) { + if (sharedManager_ == nullptr) { return -1; } - LocalSocketServerManager *pManagerInfo = reinterpret_cast(manager_->GetData()); + LocalSocketServerManager *pManagerInfo = reinterpret_cast(sharedManager_->GetData()); return (pManagerInfo != nullptr) ? pManagerInfo->sockfd_ : -1; } void LocalSocketServerBaseContext::SetSocketFd(int sock) { - if (manager_ == nullptr) { + if (sharedManager_ == nullptr) { return; } - LocalSocketServerManager *pManagerInfo = reinterpret_cast(manager_->GetData()); + LocalSocketServerManager *pManagerInfo = reinterpret_cast(sharedManager_->GetData()); if (pManagerInfo != nullptr) { pManagerInfo->sockfd_ = sock; } @@ -190,10 +190,10 @@ void LocalSocketServerSendContext::ParseParams(napi_value *params, size_t params int LocalSocketServerSendContext::GetAcceptFd() { - if (manager_ == nullptr) { + if (sharedManager_ == nullptr) { return -1; } - LocalSocketServerManager *pManagerInfo = reinterpret_cast(manager_->GetData()); + LocalSocketServerManager *pManagerInfo = reinterpret_cast(sharedManager_->GetData()); return (pManagerInfo != nullptr) ? pManagerInfo->GetAcceptFd(clientId_) : -1; } diff --git a/frameworks/js/napi/socket/async_context/src/multicast_get_loopback_context.cpp b/frameworks/js/napi/socket/async_context/src/multicast_get_loopback_context.cpp index ff2438ea9292ce07f41d702bcdae8c362286ce39..28062b53a6095b2429521d4aa7afefb3d21d371f 100644 --- a/frameworks/js/napi/socket/async_context/src/multicast_get_loopback_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/multicast_get_loopback_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -MulticastGetLoopbackContext::MulticastGetLoopbackContext(napi_env env, EventManager *manager) +MulticastGetLoopbackContext::MulticastGetLoopbackContext( + napi_env env, const std::shared_ptr &manager) : BaseContext(env, manager) { } @@ -70,7 +71,7 @@ bool MulticastGetLoopbackContext::GetLoopbackMode() const int MulticastGetLoopbackContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } int32_t MulticastGetLoopbackContext::GetErrorCode() const diff --git a/frameworks/js/napi/socket/async_context/src/multicast_get_ttl_context.cpp b/frameworks/js/napi/socket/async_context/src/multicast_get_ttl_context.cpp index c1ebaecd80212281e73032b25f37d9669daa897d..dd564c8360e5a33f03940b7c5bdf88ed8e7eacc5 100644 --- a/frameworks/js/napi/socket/async_context/src/multicast_get_ttl_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/multicast_get_ttl_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -MulticastGetTTLContext::MulticastGetTTLContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +MulticastGetTTLContext::MulticastGetTTLContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void MulticastGetTTLContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -67,7 +68,7 @@ int MulticastGetTTLContext::GetMulticastTTL() const int MulticastGetTTLContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } int32_t MulticastGetTTLContext::GetErrorCode() const diff --git a/frameworks/js/napi/socket/async_context/src/multicast_membership_context.cpp b/frameworks/js/napi/socket/async_context/src/multicast_membership_context.cpp index 7cf15d817a0b42cce9d0b749337cc07e93cfa8c7..1a358336392be31780aec0a6af782d87a1e7a40a 100644 --- a/frameworks/js/napi/socket/async_context/src/multicast_membership_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/multicast_membership_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -MulticastMembershipContext::MulticastMembershipContext(napi_env env, EventManager *manager) : BaseContext(env, manager) +MulticastMembershipContext::MulticastMembershipContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) { } @@ -54,7 +55,7 @@ void MulticastMembershipContext::ParseParams(napi_value *params, size_t paramsCo int MulticastMembershipContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool MulticastMembershipContext::CheckParamsType(napi_value *params, size_t paramsCount) @@ -86,7 +87,7 @@ bool MulticastMembershipContext::CheckParamsType(napi_value *params, size_t para void MulticastMembershipContext::SetSocketFd(int sock) { - manager_->SetData(reinterpret_cast(sock)); + sharedManager_->SetData(reinterpret_cast(sock)); } int32_t MulticastMembershipContext::GetErrorCode() const diff --git a/frameworks/js/napi/socket/async_context/src/multicast_set_loopback_context.cpp b/frameworks/js/napi/socket/async_context/src/multicast_set_loopback_context.cpp index 632af3733d5f6a6fb577ac5aa15de58fad72fd02..ea9b84b49af74ee7b7c4ed5f657cfeb331d648dc 100644 --- a/frameworks/js/napi/socket/async_context/src/multicast_set_loopback_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/multicast_set_loopback_context.cpp @@ -22,7 +22,7 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -MulticastSetLoopbackContext::MulticastSetLoopbackContext(napi_env env, EventManager *manager) +MulticastSetLoopbackContext::MulticastSetLoopbackContext(napi_env env, const std::shared_ptr &manager) : BaseContext(env, manager) { } @@ -81,7 +81,7 @@ bool MulticastSetLoopbackContext::GetLoopbackMode() const int MulticastSetLoopbackContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } int32_t MulticastSetLoopbackContext::GetErrorCode() const diff --git a/frameworks/js/napi/socket/async_context/src/multicast_set_ttl_context.cpp b/frameworks/js/napi/socket/async_context/src/multicast_set_ttl_context.cpp index 8dd57fa0913fd2a3d1b05352b16d82161af9ee03..7a3cd7f05ff8e71d55de2fc1c4205c7619c3373f 100644 --- a/frameworks/js/napi/socket/async_context/src/multicast_set_ttl_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/multicast_set_ttl_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -MulticastSetTTLContext::MulticastSetTTLContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +MulticastSetTTLContext::MulticastSetTTLContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void MulticastSetTTLContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -78,7 +79,7 @@ int MulticastSetTTLContext::GetMulticastTTL() const int MulticastSetTTLContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } int32_t MulticastSetTTLContext::GetErrorCode() const diff --git a/frameworks/js/napi/socket/async_context/src/tcp_extra_context.cpp b/frameworks/js/napi/socket/async_context/src/tcp_extra_context.cpp index df2ec3c788d7fd58d7ba2a7f0915453643a2a235..57549b3ee32e63aa97f7494f9e4135e44dd1bcf0 100644 --- a/frameworks/js/napi/socket/async_context/src/tcp_extra_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/tcp_extra_context.cpp @@ -22,7 +22,8 @@ #include "netstack_log.h" namespace OHOS::NetStack::Socket { -TcpSetExtraOptionsContext::TcpSetExtraOptionsContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TcpSetExtraOptionsContext::TcpSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TcpSetExtraOptionsContext::ParseContextKey(napi_value *params) { @@ -107,7 +108,7 @@ void TcpSetExtraOptionsContext::ParseParams(napi_value *params, size_t paramsCou int TcpSetExtraOptionsContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool TcpSetExtraOptionsContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/tcp_send_context.cpp b/frameworks/js/napi/socket/async_context/src/tcp_send_context.cpp index 46405513a560cbb8a2095977cd583bf444f75809..02eb09536f2acbc5cc36841431b064c9cdcc8789 100644 --- a/frameworks/js/napi/socket/async_context/src/tcp_send_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/tcp_send_context.cpp @@ -22,7 +22,8 @@ #include "napi_utils.h" namespace OHOS::NetStack::Socket { -TcpSendContext::TcpSendContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TcpSendContext::TcpSendContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TcpSendContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -63,7 +64,7 @@ void TcpSendContext::ParseParams(napi_value *params, size_t paramsCount) int TcpSendContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool TcpSendContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/tcp_server_common_context.cpp b/frameworks/js/napi/socket/async_context/src/tcp_server_common_context.cpp index b027791ed0041ea0beaf94fbbf349520fb5e292d..e55f66a6ff3dcae429a7681194412534285c60c2 100644 --- a/frameworks/js/napi/socket/async_context/src/tcp_server_common_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/tcp_server_common_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -TcpServerCommonContext::TcpServerCommonContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TcpServerCommonContext::TcpServerCommonContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TcpServerCommonContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -46,15 +47,15 @@ void TcpServerCommonContext::ParseParams(napi_value *params, size_t paramsCount) int TcpServerCommonContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } -TcpServerCloseContext::TcpServerCloseContext(napi_env env, EventManager *manager) +TcpServerCloseContext::TcpServerCloseContext(napi_env env, const std::shared_ptr &manager) :TcpServerCommonContext(env, manager) {} void TcpServerCloseContext::SetSocketFd(int sock) { - manager_->SetData(reinterpret_cast(sock)); + sharedManager_->SetData(reinterpret_cast(sock)); } bool TcpServerCommonContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/tcp_server_extra_context.cpp b/frameworks/js/napi/socket/async_context/src/tcp_server_extra_context.cpp index 268f8456569c2146089b0431ba32067513d7f4df..6c29b97f720bf2da62b74d0892f2c99f21234ef2 100644 --- a/frameworks/js/napi/socket/async_context/src/tcp_server_extra_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/tcp_server_extra_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -TcpServerSetExtraOptionsContext::TcpServerSetExtraOptionsContext(napi_env env, EventManager *manager) +TcpServerSetExtraOptionsContext::TcpServerSetExtraOptionsContext( + napi_env env, const std::shared_ptr &manager) : BaseContext(env, manager) { } @@ -102,7 +103,7 @@ void TcpServerSetExtraOptionsContext::ParseParams(napi_value *params, size_t par int TcpServerSetExtraOptionsContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool TcpServerSetExtraOptionsContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/tcp_server_listen_context.cpp b/frameworks/js/napi/socket/async_context/src/tcp_server_listen_context.cpp index 62b64fbc13931908b47f4399e98707fd747ee90b..d81c91d2ddba93366ef7cedcc77aaec555a36400 100644 --- a/frameworks/js/napi/socket/async_context/src/tcp_server_listen_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/tcp_server_listen_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -TcpServerListenContext::TcpServerListenContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TcpServerListenContext::TcpServerListenContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TcpServerListenContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -74,7 +75,7 @@ void TcpServerListenContext::ParseParams(napi_value *params, size_t paramsCount) int TcpServerListenContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool TcpServerListenContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/tcp_server_send_context.cpp b/frameworks/js/napi/socket/async_context/src/tcp_server_send_context.cpp index db4b13eb5b3119e8872bd5e48b7ebe752370eae2..966a3c4bd999fb22aa064f578f1d1de67601ef20 100644 --- a/frameworks/js/napi/socket/async_context/src/tcp_server_send_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/tcp_server_send_context.cpp @@ -22,7 +22,8 @@ #include "socket_constant.h" namespace OHOS::NetStack::Socket { -TcpServerSendContext::TcpServerSendContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TcpServerSendContext::TcpServerSendContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TcpServerSendContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -63,7 +64,7 @@ void TcpServerSendContext::ParseParams(napi_value *params, size_t paramsCount) int TcpServerSendContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool TcpServerSendContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/udp_extra_context.cpp b/frameworks/js/napi/socket/async_context/src/udp_extra_context.cpp index a1add985b5f013b088c4997f8406e4c231b9075c..9d8c9fefbd3dc3f41a3edc077cd70dd0da7104f3 100644 --- a/frameworks/js/napi/socket/async_context/src/udp_extra_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/udp_extra_context.cpp @@ -22,7 +22,8 @@ #include "netstack_log.h" namespace OHOS::NetStack::Socket { -UdpSetExtraOptionsContext::UdpSetExtraOptionsContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +UdpSetExtraOptionsContext::UdpSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void UdpSetExtraOptionsContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -57,7 +58,7 @@ void UdpSetExtraOptionsContext::ParseParams(napi_value *params, size_t paramsCou auto reuseAddr = NapiUtils::GetBooleanProperty(GetEnv(), params[0], KEY_REUSE_ADDRESS); options.SetReuseAddress(reuseAddr); options.SetReuseaddrFlag(true); - auto manager = this->GetManager(); + auto manager = GetSharedManager(); if (manager != nullptr) { manager->SetReuseAddr(reuseAddr); } @@ -82,7 +83,7 @@ void UdpSetExtraOptionsContext::ParseParams(napi_value *params, size_t paramsCou int UdpSetExtraOptionsContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool UdpSetExtraOptionsContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/async_context/src/udp_send_context.cpp b/frameworks/js/napi/socket/async_context/src/udp_send_context.cpp index 883d0c9e5800bdeb4a3a3d50520996cba51531db..b5f9a3cdd78940f616d766e91d98046e4e8016b8 100644 --- a/frameworks/js/napi/socket/async_context/src/udp_send_context.cpp +++ b/frameworks/js/napi/socket/async_context/src/udp_send_context.cpp @@ -25,7 +25,8 @@ #include "socket_exec_common.h" namespace OHOS::NetStack::Socket { -UdpSendContext::UdpSendContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +UdpSendContext::UdpSendContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void UdpSendContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -83,7 +84,7 @@ void UdpSendContext::ParseParams(napi_value *params, size_t paramsCount) int UdpSendContext::GetSocketFd() const { - return manager_->GetData() ? static_cast(reinterpret_cast(manager_->GetData())) : -1; + return sharedManager_->GetData() ? static_cast(reinterpret_cast(sharedManager_->GetData())) : -1; } bool UdpSendContext::CheckParamsType(napi_value *params, size_t paramsCount) diff --git a/frameworks/js/napi/socket/socket_exec/include/socket_exec.h b/frameworks/js/napi/socket/socket_exec/include/socket_exec.h index 7fe8af227ab09943aa41e8a924eed59331f1cda4..1513bb492f78192207bcbb09dc343be7735d82bd 100644 --- a/frameworks/js/napi/socket/socket_exec/include/socket_exec.h +++ b/frameworks/js/napi/socket/socket_exec/include/socket_exec.h @@ -148,24 +148,6 @@ napi_value TcpServerGetLocalAddressCallback(TcpServerGetLocalAddressContext *con napi_value UdpGetSocketFdCallback(GetSocketFdContext *context); -template static void CallbackTemplate(uv_work_t *work, int status) -{ - (void)status; - - auto workWrapper = static_cast(work->data); - napi_env env = workWrapper->env; - auto closeScope = [env](napi_handle_scope scope) { NapiUtils::CloseScope(env, scope); }; - std::unique_ptr scope(NapiUtils::OpenScope(env), closeScope); - - napi_value obj = MakeJsValue(env, workWrapper->data); - - std::pair arg = {NapiUtils::GetUndefined(workWrapper->env), obj}; - workWrapper->manager->Emit(workWrapper->type, arg); - - delete workWrapper; - delete work; -} - struct MessageData { MessageData() = delete; MessageData(void *d, size_t l, const SocketRemoteInfo &info) : data(d), len(l), remoteInfo(info) {} @@ -262,22 +244,23 @@ public: virtual ~MessageCallback() = default; - explicit MessageCallback(EventManager *manager) : manager_(manager) {} + explicit MessageCallback(const std::shared_ptr &manager) : manager_(manager) {} virtual void OnError(int err) const = 0; - virtual void OnCloseMessage(EventManager *manager) const = 0; + virtual void OnCloseMessage(const std::shared_ptr &manager) const = 0; virtual bool OnMessage(void *data, size_t dataLen, sockaddr *addr) const = 0; - virtual bool OnMessage(int sock, void *data, size_t dataLen, sockaddr *addr, EventManager *manager) const = 0; + virtual bool OnMessage(int sock, void *data, size_t dataLen, sockaddr *addr, + const std::shared_ptr &manager) const = 0; virtual void OnTcpConnectionMessage(int32_t id) const = 0; - [[nodiscard]] EventManager *GetEventManager() const; + [[nodiscard]] std::shared_ptr GetEventManager() const; protected: - EventManager *manager_; + std::shared_ptr manager_ = nullptr; }; using SocketRecvCallback = std::function &, int> &bufInfo, diff --git a/frameworks/js/napi/socket/socket_exec/src/local_socket_exec.cpp b/frameworks/js/napi/socket/socket_exec/src/local_socket_exec.cpp index 8273af88824d3966df146315e13e6fb792a5ea24..a8f315e8a3248204e13d08296bcc12e940993b8f 100644 --- a/frameworks/js/napi/socket/socket_exec/src/local_socket_exec.cpp +++ b/frameworks/js/napi/socket/socket_exec/src/local_socket_exec.cpp @@ -29,6 +29,7 @@ #include "securec.h" #include "socket_async_work.h" #include "socket_module.h" +#include "module_template.h" #ifndef EPOLLIN #define EPOLLIN 0x001 @@ -87,8 +88,9 @@ struct MsgWithLocalRemoteInfo { void LocalSocketServerConnectionFinalize(napi_env, void *data, void *) { NETSTACK_LOGI("localsocket connection is finalized"); - EventManager *manager = reinterpret_cast(data); - if (manager != nullptr) { + auto sharedManager = reinterpret_cast *>(data); + if (sharedManager != nullptr && *sharedManager != nullptr) { + auto manager = *sharedManager; LocalSocketConnectionData *connectData = reinterpret_cast(manager->GetData()); if (connectData != nullptr) { auto serverManager = connectData->serverManager_; @@ -99,6 +101,7 @@ void LocalSocketServerConnectionFinalize(napi_env, void *data, void *) delete connectData; connectData = nullptr; } + delete sharedManager; } } @@ -108,16 +111,17 @@ napi_value NewInstanceWithConstructor(napi_env env, napi_callback_info info, nap napi_value result = nullptr; NAPI_CALL(env, napi_new_instance(env, jsConstructor, 0, nullptr, &result)); - EventManager *manager = new (std::nothrow) EventManager(); - if (manager == nullptr) { - delete data; + auto sharedManager = new (std::nothrow) std::shared_ptr(); + if (sharedManager == nullptr) { return result; } + auto manager = std::make_shared(); + *sharedManager = manager; manager->SetData(reinterpret_cast(data)); - EventManager::SetValid(manager); data->serverManager_->AddEventManager(data->clientId_, manager); manager->CreateEventReference(env, result); - napi_wrap(env, result, reinterpret_cast(manager), LocalSocketServerConnectionFinalize, nullptr, nullptr); + napi_wrap(env, result, reinterpret_cast(sharedManager), + LocalSocketServerConnectionFinalize, nullptr, nullptr); return result; } @@ -179,9 +183,8 @@ static napi_value MakeJsLocalSocketMessageParam(napi_env env, napi_value msgBuff return obj; } -static napi_value MakeLocalSocketMessage(napi_env env, void *param) +static napi_value MakeLocalSocketMessage(napi_env env, const std::shared_ptr &manager) { - auto *manager = reinterpret_cast(param); auto *msg = reinterpret_cast(manager->GetQueueData()); auto deleter = [](const MsgWithLocalRemoteInfo *p) { delete p; }; std::unique_ptr handler(msg, deleter); @@ -202,38 +205,22 @@ static napi_value MakeLocalSocketMessage(napi_env env, void *param) return MakeJsLocalSocketMessageParam(env, msgBuffer, msg); } -template static void CallbackTemplate(uv_work_t *work, int status) -{ - (void)status; - - auto workWrapper = static_cast(work->data); - napi_env env = workWrapper->env; - auto closeScope = [env](napi_handle_scope scope) { NapiUtils::CloseScope(env, scope); }; - std::unique_ptr scope(NapiUtils::OpenScope(env), closeScope); - - napi_value obj = MakeJsValue(env, workWrapper->data); - - std::pair arg = {NapiUtils::GetUndefined(workWrapper->env), obj}; - workWrapper->manager->Emit(workWrapper->type, arg); - - delete workWrapper; - delete work; -} - -static bool OnRecvLocalSocketMessage(EventManager *manager, void *data, size_t len, const std::string &path) +static bool OnRecvLocalSocketMessage(const std::shared_ptr &manager, + void *data, size_t len, const std::string &path) { if (manager == nullptr || data == nullptr || len == 0) { NETSTACK_LOGE("manager or data or len is invalid"); return false; } - if (EventManager::IsManagerValid(manager) && manager->HasEventListener(EVENT_MESSAGE)) { + if (manager->HasEventListener(EVENT_MESSAGE)) { MsgWithLocalRemoteInfo *msg = new (std::nothrow) MsgWithLocalRemoteInfo(data, len, path); if (msg == nullptr) { NETSTACK_LOGE("MsgWithLocalRemoteInfo construct error"); return false; } manager->SetQueueData(reinterpret_cast(msg)); - manager->EmitByUv(EVENT_MESSAGE, manager, CallbackTemplate); + manager->EmitByUvWithoutCheckShared(EVENT_MESSAGE, nullptr, + ModuleTemplate::CallbackTemplateWithSharedManager); } return true; } @@ -361,24 +348,25 @@ public: ~LocalSocketMessageCallback() = default; - explicit LocalSocketMessageCallback(EventManager *manager, const std::string &path = "") + explicit LocalSocketMessageCallback(const std::shared_ptr &manager, const std::string &path = "") : manager_(manager), socketPath_(path) { } void OnError(int err) const { - if (EventManager::IsManagerValid(manager_) && manager_->HasEventListener(EVENT_ERROR)) { - manager_->EmitByUv(EVENT_ERROR, new int(err), CallbackTemplate); + if (manager_ != nullptr && manager_->HasEventListener(EVENT_ERROR)) { + manager_->EmitByUvWithoutCheckShared(EVENT_ERROR, new int(err), + ModuleTemplate::CallbackTemplate); } } - void OnCloseMessage(EventManager *manager = nullptr) const + void OnCloseMessage(const std::shared_ptr &manager) const { - if (manager == nullptr && EventManager::IsManagerValid(manager_)) { - manager_->EmitByUv(EVENT_CLOSE, nullptr, CallbackTemplate); - } else if (manager != nullptr && EventManager::IsManagerValid(manager)) { - manager->EmitByUv(EVENT_CLOSE, nullptr, CallbackTemplate); + if (manager == nullptr && manager_ != nullptr) { + manager_->EmitByUvWithoutCheckShared(EVENT_CLOSE, nullptr, ModuleTemplate::CallbackTemplate); + } else if (manager != nullptr) { + manager->EmitByUvWithoutCheckShared(EVENT_CLOSE, nullptr, ModuleTemplate::CallbackTemplate); } } @@ -387,27 +375,28 @@ public: return OnRecvLocalSocketMessage(manager_, data, dataLen, socketPath_); } - bool OnMessage(EventManager *manager, void *data, size_t len) const + bool OnMessage(const std::shared_ptr &manager, void *data, size_t len) const { return OnRecvLocalSocketMessage(manager, data, len, socketPath_); } void OnLocalSocketConnectionMessage(int clientId, LocalSocketServerManager *serverManager) const { - if (EventManager::IsManagerValid(manager_) && manager_->HasEventListener(EVENT_CONNECT)) { + if (manager_ != nullptr && manager_->HasEventListener(EVENT_CONNECT)) { LocalSocketConnectionData *data = new (std::nothrow) LocalSocketConnectionData(clientId, serverManager); if (data != nullptr) { - manager_->EmitByUv(EVENT_CONNECT, data, CallbackTemplate); + manager_->EmitByUvWithoutCheckShared(EVENT_CONNECT, data, + ModuleTemplate::CallbackTemplate); } } } - EventManager *GetEventManager() const + std::shared_ptr GetSharedEventManager() const { return manager_; } - EventManager *manager_; + std::shared_ptr manager_ = nullptr; private: std::string socketPath_; @@ -499,7 +488,7 @@ static void LocalSocketServerRecvHandler(int connectFd, LocalSocketServerManager } NETSTACK_LOGI("local socket server accept new, fd: %{public}d, id: %{public}d", connectFd, clientId); callback.OnLocalSocketConnectionMessage(clientId, serverManager); - EventManager *eventManager = serverManager->WaitForManager(clientId); + auto eventManager = serverManager->WaitForSharedManager(clientId); int sockRecvSize = ConfirmBufferSize(connectFd); auto buffer = std::make_unique(sockRecvSize); if (buffer == nullptr) { @@ -584,7 +573,7 @@ static void LocalSocketServerAccept(LocalSocketServerManager *mgr, const LocalSo static void RecvHandler(int connectFd, const LocalSocketMessageCallback &callback, LocalSocketServerManager *mgr) { int clientId = mgr->GetClientId(connectFd); - EventManager *eventManager = mgr->GetManager(clientId); + auto eventManager = mgr->GetSharedManager(clientId); if (eventManager == nullptr) { NETSTACK_LOGI("manager is null"); callback.OnError(UNKNOW_ERROR); @@ -744,11 +733,11 @@ static void PollRecvData(int sock, const LocalSocketMessageCallback &callback) } NETSTACK_LOGE("recv failed, socket is %{public}d, errno is %{public}d", sock, errno); if (auto mgr = reinterpret_cast(callback.manager_->GetData()); mgr != nullptr) { - mgr->GetSocketCloseStatus() ? callback.OnCloseMessage() : callback.OnError(errno); + mgr->GetSocketCloseStatus() ? callback.OnCloseMessage(nullptr) : callback.OnError(errno); } return; } else if (recvLen == 0) { - callback.OnCloseMessage(); + callback.OnCloseMessage(nullptr); break; } void *data = malloc(recvLen); @@ -829,10 +818,10 @@ bool ExecLocalSocketConnect(LocalSocketConnectContext *context) context->SetErrorCode(errno); return false; } - if (auto pMgr = reinterpret_cast(context->GetManager()->GetData()); pMgr != nullptr) { + if (auto pMgr = reinterpret_cast(context->GetSharedManager()->GetData()); pMgr != nullptr) { pMgr->isConnected_ = true; } - std::thread serviceThread(PollRecvData, sockfd, LocalSocketMessageCallback(context->GetManager(), context-> + std::thread serviceThread(PollRecvData, sockfd, LocalSocketMessageCallback(context->GetSharedManager(), context-> GetSocketPath())); #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) pthread_setname_np(LOCAL_SOCKET_CONNECT); @@ -870,7 +859,7 @@ bool ExecLocalSocketClose(LocalSocketCloseContext *context) return false; } context->SetSocketFd(-1); - if (auto pMgr = reinterpret_cast(context->GetManager()->GetData()); pMgr != nullptr) { + if (auto pMgr = reinterpret_cast(context->GetSharedManager()->GetData()); pMgr != nullptr) { pMgr->isConnected_ = false; pMgr->SetSocketCloseStatus(true); } @@ -891,7 +880,7 @@ bool ExecLocalSocketGetState(LocalSocketGetStateContext *context) } else { state.SetIsBound(strlen(unAddr.sun_path) > 0); } - if (auto pMgr = reinterpret_cast(context->GetManager()->GetData()); pMgr != nullptr) { + if (auto pMgr = reinterpret_cast(context->GetSharedManager()->GetData()); pMgr != nullptr) { state.SetIsConnected(pMgr->isConnected_); } return true; @@ -1006,18 +995,18 @@ bool ExecLocalSocketServerListen(LocalSocketServerListenContext *context) return false; } NETSTACK_LOGI("local socket server listen success"); - LocalSocketServerManager *mgr = reinterpret_cast(context->GetManager()->GetData()); + auto mgr = reinterpret_cast(context->GetSharedManager()->GetData()); if (mgr == nullptr) { NETSTACK_LOGE("LocalSocketServerManager reinterpret cast failed"); context->SetErrorCode(UNKNOW_ERROR); return false; } #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) - std::thread serviceThread(LocalSocketServerAccept, mgr, LocalSocketMessageCallback(context->GetManager()), + std::thread serviceThread(LocalSocketServerAccept, mgr, LocalSocketMessageCallback(context->GetSharedManager()), context->GetSocketPath()); pthread_setname_np(LOCAL_SOCKET_SERVER_ACCEPT_RECV_DATA); #else - std::thread serviceThread(LocalSocketServerAccept, mgr, LocalSocketMessageCallback(context->GetManager(), + std::thread serviceThread(LocalSocketServerAccept, mgr, LocalSocketMessageCallback(context->GetSharedManager(), context->GetSocketPath())); #endif serviceThread.detach(); @@ -1026,10 +1015,10 @@ bool ExecLocalSocketServerListen(LocalSocketServerListenContext *context) bool ExecLocalSocketServerEnd(LocalSocketServerEndContext *context) { - if (context == nullptr || context->GetManager() == nullptr) { + if (context == nullptr || context->GetSharedManager() == nullptr) { return false; } - LocalSocketServerManager *mgr = reinterpret_cast(context->GetManager()->GetData()); + auto mgr = reinterpret_cast(context->GetSharedManager()->GetData()); if (mgr == nullptr) { NETSTACK_LOGE("LocalSocketServerManager reinterpret cast failed"); context->SetErrorCode(UNKNOW_ERROR); @@ -1047,7 +1036,7 @@ bool ExecLocalSocketServerEnd(LocalSocketServerEndContext *context) } mgr->WaitForEndingLoop(); delete mgr; - context->GetManager()->SetData(nullptr); + context->GetSharedManager()->SetData(nullptr); return true; } @@ -1062,7 +1051,7 @@ bool ExecLocalSocketServerGetState(LocalSocketServerGetStateContext *context) if (getsockname(context->GetSocketFd(), reinterpret_cast(&unAddr), &len) == 0) { state.SetIsBound(true); } - auto pMgr = reinterpret_cast(context->GetManager()->GetData()); + auto pMgr = reinterpret_cast(context->GetSharedManager()->GetData()); if (pMgr != nullptr) { state.SetIsConnected(pMgr->GetClientCounts() > 0); } @@ -1093,7 +1082,7 @@ bool ExecLocalSocketServerSetExtraOptions(LocalSocketServerSetExtraOptionsContex if (context == nullptr) { return false; } - auto serverManager = reinterpret_cast(context->GetManager()->GetData()); + auto serverManager = reinterpret_cast(context->GetSharedManager()->GetData()); if (serverManager == nullptr) { return false; } @@ -1113,7 +1102,8 @@ bool ExecLocalSocketServerGetExtraOptions(LocalSocketServerGetExtraOptionsContex if (context == nullptr) { return false; } - if (auto pMgr = reinterpret_cast(context->GetManager()->GetData()); pMgr != nullptr) { + auto pMgr = reinterpret_cast(context->GetSharedManager()->GetData()); + if (pMgr != nullptr) { LocalExtraOptions &options = context->GetOptionsRef(); if (pMgr->alreadySetExtraOptions_) { options = pMgr->extraOptions_; @@ -1137,7 +1127,7 @@ bool ExecLocalSocketConnectionSend(LocalSocketServerSendContext *context) return false; } int clientId = context->GetClientId(); - auto data = reinterpret_cast(context->GetManager()->GetData()); + auto data = reinterpret_cast(context->GetSharedManager()->GetData()); if (data == nullptr || data->serverManager_ == nullptr) { NETSTACK_LOGE("localsocket connection send, data or manager is nullptr, id: %{public}d", clientId); return false; @@ -1163,7 +1153,7 @@ bool ExecLocalSocketConnectionClose(LocalSocketServerCloseContext *context) if (context == nullptr) { return false; } - auto data = reinterpret_cast(context->GetManager()->GetData()); + auto data = reinterpret_cast(context->GetSharedManager()->GetData()); if (data == nullptr || data->serverManager_ == nullptr) { NETSTACK_LOGE("connection close callback reinterpret cast failed"); return false; @@ -1195,7 +1185,8 @@ bool ExecLocalSocketConnectionGetLocalAddress(LocalSocketServerGetLocalAddressCo return false; } int socketFD = -1; - if (auto data = reinterpret_cast(context->GetManager()->GetData()); data != nullptr) { + auto data = reinterpret_cast(context->GetSharedManager()->GetData()); + if (data != nullptr) { if (data->serverManager_ == nullptr) { NETSTACK_LOGE("invalid serverManager or socket has closed"); context->SetNeedThrowException(true); @@ -1230,8 +1221,8 @@ napi_value LocalSocketBindCallback(LocalSocketBindContext *context) napi_value LocalSocketConnectCallback(LocalSocketConnectContext *context) { - context->Emit(EVENT_CONNECT, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_CONNECT, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -1242,7 +1233,7 @@ napi_value LocalSocketSendCallback(LocalSocketSendContext *context) napi_value LocalSocketCloseCallback(LocalSocketCloseContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager != nullptr) { NETSTACK_LOGD("local socket close, delete js ref"); manager->DeleteEventReference(context->GetEnv()); @@ -1303,8 +1294,8 @@ napi_value LocalSocketGetExtraOptionsCallback(LocalSocketGetExtraOptionsContext napi_value LocalSocketServerListenCallback(LocalSocketServerListenContext *context) { - context->Emit(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -1362,7 +1353,7 @@ napi_value LocalSocketConnectionSendCallback(LocalSocketServerSendContext *conte napi_value LocalSocketConnectionCloseCallback(LocalSocketServerCloseContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager != nullptr) { NETSTACK_LOGD("local socket connection close, delete js ref"); manager->DeleteEventReference(context->GetEnv()); diff --git a/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp b/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp index 967a5d23cc53bd910a18a67ac2f60025c36e9901..e4cc58491d11f8226c4d8dbf7e657fb7ed066834 100644 --- a/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp +++ b/frameworks/js/napi/socket/socket_exec/src/socket_exec.cpp @@ -42,6 +42,7 @@ #include "socket_module.h" #include "socket_exec_common.h" #include "socks5_utils.h" +#include "module_template.h" #ifdef IOS_PLATFORM #define SO_PROTOCOL 38 @@ -95,7 +96,7 @@ namespace OHOS::NetStack::Socket::SocketExec { } while (0) std::map g_clientFDs; -std::map g_clientEventManagers; +std::map> g_clientEventManagers; std::condition_variable g_cv; std::mutex g_mutex; std::shared_mutex g_fdMutex; @@ -150,8 +151,9 @@ static napi_value MakeClose(napi_env env, void *data) void TcpServerConnectionFinalize(napi_env, void *data, void *) { NETSTACK_LOGI("socket server connection handle is finalized"); - auto manager = static_cast(data); - if (manager != nullptr) { + auto sharedManager = reinterpret_cast *>(data); + if (sharedManager != nullptr) { + auto manager = *sharedManager; NETSTACK_LOGI("manager is not nullptr"); int clientIndex = -1; std::lock_guard lock(g_mutex); @@ -171,7 +173,7 @@ void TcpServerConnectionFinalize(napi_env, void *data, void *) } } } - EventManager::SetInvalid(manager); + delete sharedManager; } void NotifyRegisterEvent() @@ -185,16 +187,20 @@ napi_value NewInstanceWithConstructor(napi_env env, napi_callback_info info, nap napi_value result = nullptr; NAPI_CALL(env, napi_new_instance(env, jsConstructor, 0, nullptr, &result)); - EventManager *manager = new EventManager(); + auto sharedManager = new (std::nothrow) std::shared_ptr(); + if (sharedManager == nullptr) { + return result; + } + auto manager = std::make_shared(); + *sharedManager = manager; { std::lock_guard lock(g_mutex); - g_clientEventManagers.insert(std::pair(counter, manager)); + g_clientEventManagers.insert(std::pair>(counter, manager)); g_cv.notify_one(); } manager->SetData(reinterpret_cast(counter)); - EventManager::SetValid(manager); - napi_wrap(env, result, reinterpret_cast(manager), TcpServerConnectionFinalize, nullptr, nullptr); + napi_wrap(env, result, reinterpret_cast(sharedManager), TcpServerConnectionFinalize, nullptr, nullptr); return result; } // namespace OHOS::NetStack::Socket::SocketExec @@ -290,9 +296,8 @@ static napi_value MakeJsMessageParam(napi_env env, napi_value msgBuffer, SocketR return obj; } -static napi_value MakeMessage(napi_env env, void *para) +static napi_value MakeMessage(napi_env env, const std::shared_ptr &manager) { - auto manager = reinterpret_cast(para); auto messageData = reinterpret_cast(manager->GetQueueData()); auto deleter = [](const MessageData *p) { delete p; }; std::unique_ptr handler(messageData, deleter); @@ -321,7 +326,7 @@ static napi_value MakeMessage(napi_env env, void *para) return MakeJsMessageParam(env, msgBuffer, &messageData->remoteInfo); } -static bool OnRecvMessage(EventManager *manager, void *data, size_t len, sockaddr *addr) +static bool OnRecvMessage(const std::shared_ptr &manager, void *data, size_t len, sockaddr *addr) { if (data == nullptr || len == 0) { return false; @@ -330,7 +335,8 @@ static bool OnRecvMessage(EventManager *manager, void *data, size_t len, sockadd SocketRemoteInfo remoteInfo; std::string address = MakeAddressString(addr); if (address.empty() && manager->HasEventListener(EVENT_ERROR)) { - manager->EmitByUv(EVENT_ERROR, new int32_t(ADDRESS_INVALID), CallbackTemplate); + manager->EmitByUvWithoutCheckShared(EVENT_ERROR, new int32_t(ADDRESS_INVALID), + ModuleTemplate::CallbackTemplate); return false; } remoteInfo.SetAddress(address); @@ -349,16 +355,17 @@ static bool OnRecvMessage(EventManager *manager, void *data, size_t len, sockadd } remoteInfo.SetSize(len); - if (EventManager::IsManagerValid(manager) && manager->HasEventListener(EVENT_MESSAGE)) { + if (manager->HasEventListener(EVENT_MESSAGE)) { auto *messageStruct = new MessageData(data, len, remoteInfo); manager->SetQueueData(reinterpret_cast(messageStruct)); - manager->EmitByUv(EVENT_MESSAGE, manager, CallbackTemplate); + manager->EmitByUvWithoutCheckShared(EVENT_MESSAGE, nullptr, + ModuleTemplate::CallbackTemplateWithSharedManager); return true; } return false; } -EventManager *MessageCallback::GetEventManager() const +std::shared_ptr MessageCallback::GetEventManager() const { return manager_; } @@ -369,26 +376,29 @@ public: ~TcpMessageCallback() override = default; - explicit TcpMessageCallback(EventManager *manager) : MessageCallback(manager) {} + explicit TcpMessageCallback(const std::shared_ptr &manager) : MessageCallback(manager) {} void OnError(int err) const override { - if (EventManager::IsManagerValid(manager_) && manager_->HasEventListener(EVENT_ERROR)) { - manager_->EmitByUv(EVENT_ERROR, new int(err), CallbackTemplate); + if (manager_ != nullptr && manager_->HasEventListener(EVENT_ERROR)) { + manager_->EmitByUvWithoutCheckShared(EVENT_ERROR, new int(err), + ModuleTemplate::CallbackTemplate); return; } NETSTACK_LOGI("tcp socket handle has been finalized, manager is invalid or ERROR listener is not registered"); } - void OnCloseMessage(EventManager *manager) const override + void OnCloseMessage(const std::shared_ptr &manager) const override { - manager->EmitByUv(EVENT_CLOSE, nullptr, CallbackTemplate); + if (manager != nullptr) { + manager->EmitByUvWithoutCheckShared(EVENT_CLOSE, nullptr, ModuleTemplate::CallbackTemplate); + } } bool OnMessage(void *data, size_t dataLen, sockaddr *addr) const override { (void)addr; - if (!EventManager::IsManagerValid(manager_)) { + if (manager_ == nullptr) { NETSTACK_LOGE("invalid manager"); return false; } @@ -425,7 +435,8 @@ public: return false; } - bool OnMessage(int sock, void *data, size_t dataLen, sockaddr *addr, EventManager *manager) const override + bool OnMessage(int sock, void *data, size_t dataLen, sockaddr *addr, + const std::shared_ptr &manager) const override { (void)addr; if (static_cast(reinterpret_cast(manager_->GetData())) == 0) { @@ -463,7 +474,8 @@ public: void OnTcpConnectionMessage(int32_t id) const override { if (manager_->HasEventListener(EVENT_CONNECT)) { - manager_->EmitByUv(EVENT_CONNECT, new TcpConnection(id), CallbackTemplate); + manager_->EmitByUvWithoutCheckShared(EVENT_CONNECT, new TcpConnection(id), + ModuleTemplate::CallbackTemplate); } } }; @@ -474,18 +486,19 @@ public: ~UdpMessageCallback() override = default; - explicit UdpMessageCallback(EventManager *manager) : MessageCallback(manager) {} + explicit UdpMessageCallback(const std::shared_ptr &manager) : MessageCallback(manager) {} void OnError(int err) const override { - if (EventManager::IsManagerValid(manager_) && manager_->HasEventListener(EVENT_ERROR)) { - manager_->EmitByUv(EVENT_ERROR, new int(err), CallbackTemplate); + if (manager_ != nullptr && manager_->HasEventListener(EVENT_ERROR)) { + manager_->EmitByUvWithoutCheckShared(EVENT_ERROR, new int(err), + ModuleTemplate::CallbackTemplate); return; } NETSTACK_LOGI("udp socket handle has been finalized, manager is invalid or ERROR listener is not registered"); } - void OnCloseMessage(EventManager *manager) const override {} + void OnCloseMessage(const std::shared_ptr &manager) const override {} bool OnMessage(void *data, size_t dataLen, sockaddr *addr) const override { @@ -496,7 +509,8 @@ public: return OnRecvMessage(manager_, data, dataLen, addr); } - bool OnMessage(int sock, void *data, size_t dataLen, sockaddr *addr, EventManager *manager) const override + bool OnMessage(int sock, void *data, size_t dataLen, sockaddr *addr, + const std::shared_ptr &manager) const override { if (static_cast(reinterpret_cast(manager_->GetData())) == 0) { return false; @@ -649,7 +663,7 @@ static int ExitOrAbnormal(int sock, ssize_t recvLen, const MessageCallback &call NETSTACK_LOGI("closed by peer, socket:%{public}d, recvLen:%{public}zd", sock, recvLen); callback.OnCloseMessage(callback.GetEventManager()); } else { - if (EventManager::IsManagerValid(callback.GetEventManager()) && static_cast( + if (callback.GetEventManager() != nullptr && static_cast( reinterpret_cast(callback.GetEventManager()->GetData())) > 0) { NETSTACK_LOGE("recv fail, socket:%{public}d, recvLen:%{public}zd, errno:%{public}d", sock, recvLen, errno); callback.OnError(errno); @@ -661,7 +675,7 @@ static int ExitOrAbnormal(int sock, ssize_t recvLen, const MessageCallback &call static inline void PollRecvFinish(const MessageCallback &callback) { auto manager = callback.GetEventManager(); - if (EventManager::IsManagerValid(manager)) { + if (manager != nullptr) { manager->NotifyRcvThdExit(); } else { NETSTACK_LOGE("manager is error"); @@ -670,7 +684,7 @@ static inline void PollRecvFinish(const MessageCallback &callback) static void ProcessPollResult(int currentFd, const MessageCallback &callback) { - if (EventManager::IsManagerValid(callback.GetEventManager())) { + if (callback.GetEventManager() != nullptr) { if (static_cast(reinterpret_cast(callback.GetEventManager()->GetData())) > 0) { NETSTACK_LOGE("poll to recv failed, socket is %{public}d, errno is %{public}d", currentFd, errno); callback.OnError(errno); @@ -746,7 +760,7 @@ static bool PreparePollFds(int ¤tFd, std::vector &fds, fds.clear(); auto manager = callback.GetEventManager(); - if (!EventManager::IsManagerValid(manager)) { + if (manager != nullptr) { NETSTACK_LOGE("manager is error"); return false; } @@ -868,7 +882,7 @@ bool ExecBind(BindContext *context) } int reuse = 0; - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager != nullptr) { reuse = manager->GetReuseAddr(); if (setsockopt(context->GetSocketFd(), SOL_SOCKET, SO_REUSEADDR, reinterpret_cast(&reuse), @@ -926,7 +940,7 @@ bool ExecUdpBind(BindContext *context) } NETSTACK_LOGI("copy ret = %{public}d", memcpy_s(pAddr4, sizeof(addr4), &addr4, sizeof(addr4))); std::thread serviceThread(PollRecvData, context->GetSocketFd(), pAddr4, sizeof(addr4), - UdpMessageCallback(context->GetManager())); + UdpMessageCallback(context->GetSharedManager())); #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) pthread_setname_np(SOCKET_EXEC_UDP_BIND); #else @@ -942,7 +956,7 @@ bool ExecUdpBind(BindContext *context) } NETSTACK_LOGI("copy ret = %{public}d", memcpy_s(pAddr6, sizeof(addr6), &addr6, sizeof(addr6))); std::thread serviceThread(PollRecvData, context->GetSocketFd(), pAddr6, sizeof(addr6), - UdpMessageCallback(context->GetManager())); + UdpMessageCallback(context->GetSharedManager())); #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) pthread_setname_np(SOCKET_EXEC_UDP_BIND); #else @@ -978,7 +992,7 @@ static std::shared_ptr InitSocks5UdpInstance(UdpSendC static int HandleUdpProxyOptions(UdpSendContext *context) { - EventManager *eventMgr = context->GetManager(); + auto eventMgr = context->GetSharedManager(); if (eventMgr == nullptr) { NETSTACK_LOGE("event manager is null"); return -1; @@ -1076,7 +1090,7 @@ static std::shared_ptr InitSocks5TcpInstance(ConnectC static int HandleTcpProxyOptions(ConnectContext *context) { - EventManager *eventMgr = context->GetManager(); + auto eventMgr = context->GetSharedManager(); if (eventMgr == nullptr) { NETSTACK_LOGE("event manager is null"); return -1; @@ -1146,7 +1160,7 @@ bool ExecConnect(ConnectContext *context) NETSTACK_LOGI("connect success, sock:%{public}d", context->GetSocketFd()); std::thread serviceThread(PollRecvData, context->GetSocketFd(), nullptr, 0, - TcpMessageCallback(context->GetManager())); + TcpMessageCallback(context->GetSharedManager())); #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) pthread_setname_np(SOCKET_EXEC_CONNECT); #else @@ -1188,8 +1202,8 @@ bool ExecClose(CloseContext *context) return false; } - EventManager *manager = context->GetManager(); - if (EventManager::IsManagerValid(manager)) { + auto manager = context->GetSharedManager(); + if (manager != nullptr) { auto inst = manager->GetProxyData(); if (inst != nullptr) { inst->Close(); @@ -1295,7 +1309,7 @@ bool ExecGetState(GetStateContext *context) context->SetPermissionDenied(true); return false; } - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGI("manager is nullptr"); return false; @@ -1489,7 +1503,7 @@ bool RecvfromMulticast(MulticastMembershipContext *context) } NETSTACK_LOGI("copy ret = %{public}d", memcpy_s(pAddr4, sizeof(addr4), &addr4, sizeof(addr4))); std::thread serviceThread(PollRecvData, context->GetSocketFd(), pAddr4, sizeof(addr4), - UdpMessageCallback(context->GetManager())); + UdpMessageCallback(context->GetSharedManager())); RecvfromMulticastSetThreadName(serviceThread.native_handle()); serviceThread.detach(); } else if (addr->sa_family == AF_INET6) { @@ -1505,7 +1519,7 @@ bool RecvfromMulticast(MulticastMembershipContext *context) } NETSTACK_LOGI("copy ret = %{public}d", memcpy_s(pAddr6, sizeof(addr6), &addr6, sizeof(addr6))); std::thread serviceThread(PollRecvData, context->GetSocketFd(), pAddr6, sizeof(addr6), - UdpMessageCallback(context->GetManager())); + UdpMessageCallback(context->GetSharedManager())); RecvfromMulticastSetThreadName(serviceThread.native_handle()); serviceThread.detach(); } @@ -1982,9 +1996,9 @@ static void RemoveClientConnection(int32_t clientId) } } -static EventManager *WaitForManagerReady(int32_t clientId, int &connectFd) +static std::shared_ptr WaitForManagerReady(int32_t clientId, int &connectFd) { - EventManager *manager = nullptr; + std::shared_ptr manager = nullptr; std::unique_lock lock(g_mutex); g_cv.wait(lock, [&manager, &clientId]() { auto iter = g_clientEventManagers.find(clientId); @@ -2010,15 +2024,16 @@ static inline void RecvInErrorCondition(int reason, int clientId, int connectFD, callback.OnError(reason); } -static inline void CloseClientHandler(int clientId, int connectFD, - EventManager *manager, const TcpMessageCallback &callback) +static inline void CloseClientHandler(int clientId, int connectFD, const std::shared_ptr &manager, + const TcpMessageCallback &callback) { callback.OnCloseMessage(manager); RemoveClientConnection(clientId); SingletonSocketConfig::GetInstance().RemoveAcceptSocket(connectFD); } -static int PollSocket(int clientId, int connectFD, EventManager *manager, const TcpMessageCallback &callback) +static int PollSocket(int clientId, int connectFD, const std::shared_ptr &manager, + const TcpMessageCallback &callback) { pollfd fds[1] = {{connectFD, POLLIN, 0}}; int ret = poll(fds, 1, DEFAULT_POLL_TIMEOUT); @@ -2036,9 +2051,9 @@ static int PollSocket(int clientId, int connectFD, EventManager *manager, const return 1; } -static bool IsValidSock(int ¤tFd, EventManager *manager) +static bool IsValidSock(int ¤tFd, const std::shared_ptr &manager) { - if (EventManager::IsManagerValid(manager)) { + if (manager != nullptr) { currentFd = static_cast(reinterpret_cast(manager->GetData())); if (currentFd <= 0) { NETSTACK_LOGE("currentFd: %{public}d is error", currentFd); @@ -2051,8 +2066,8 @@ static bool IsValidSock(int ¤tFd, EventManager *manager) return true; } -static int RecvWithSockCheck(int connectFD, char *buffer, uint32_t recvBufferSize, EventManager *manager, - int &recvSize) +static int RecvWithSockCheck(int connectFD, char *buffer, uint32_t recvBufferSize, + const std::shared_ptr &manager, int &recvSize) { std::shared_lock lock(g_fdMutex); if (buffer == nullptr) { @@ -2066,8 +2081,8 @@ static int RecvWithSockCheck(int connectFD, char *buffer, uint32_t recvBufferSiz return 0; } -static void ClientPollRecv(int clientId, int connectFD, uint32_t recvBufferSize, EventManager *manager, - const TcpMessageCallback &callback) +static void ClientPollRecv(int clientId, int connectFD, uint32_t recvBufferSize, + const std::shared_ptr &manager, const TcpMessageCallback &callback) { auto buffer = std::make_unique(recvBufferSize); if (buffer == nullptr) { @@ -2120,7 +2135,7 @@ static void ClientPollRecv(int clientId, int connectFD, uint32_t recvBufferSize, static void ClientHandler(int32_t sock, int32_t clientId, const TcpMessageCallback &callback) { int32_t connectFD = 0; - EventManager *manager = WaitForManagerReady(clientId, connectFD); + auto manager = WaitForManagerReady(clientId, connectFD); uint32_t recvBufferSize = DEFAULT_BUFFER_SIZE; TCPExtraOptions option; @@ -2192,7 +2207,7 @@ bool ExecTcpServerListen(TcpServerListenContext *context) SingletonSocketConfig::GetInstance().AddNewListenSocket(context->GetSocketFd()); NETSTACK_LOGI("listen success"); std::thread serviceThread(AcceptRecvData, context->GetSocketFd(), nullptr, 0, - TcpMessageCallback(context->GetManager())); + TcpMessageCallback(context->GetSharedManager())); #if defined(MAC_PLATFORM) || defined(IOS_PLATFORM) pthread_setname_np(TCP_SERVER_ACCEPT_RECV_DATA); #else @@ -2303,7 +2318,7 @@ bool ExecTcpServerGetState(TcpServerGetStateContext *context) context->SetPermissionDenied(true); return false; } - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -2317,8 +2332,8 @@ bool ExecTcpServerGetState(TcpServerGetStateContext *context) napi_value BindCallback(BindContext *context) { - context->Emit(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -2334,8 +2349,8 @@ napi_value UdpAddMembershipCallback(MulticastMembershipContext *context) napi_value UdpDropMembershipCallback(MulticastMembershipContext *context) { - context->Emit(EVENT_CLOSE, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_CLOSE, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -2361,8 +2376,8 @@ napi_value UdpGetLoopbackModeCallback(MulticastGetLoopbackContext *context) napi_value ConnectCallback(ConnectContext *context) { - context->Emit(EVENT_CONNECT, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_CONNECT, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -2373,8 +2388,8 @@ napi_value TcpSendCallback(TcpSendContext *context) napi_value CloseCallback(CloseContext *context) { - context->Emit(EVENT_CLOSE, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_CLOSE, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } diff --git a/frameworks/js/napi/socket/socket_module/src/socket_module.cpp b/frameworks/js/napi/socket/socket_module/src/socket_module.cpp index d6bbe4b3df6605b1877229cbffbf03067592c949..ef37e19117d08a1c05107c035e335a61b56ee739 100644 --- a/frameworks/js/napi/socket/socket_module/src/socket_module.cpp +++ b/frameworks/js/napi/socket/socket_module/src/socket_module.cpp @@ -120,29 +120,32 @@ static constexpr const char *KEY_SOCKET_FD = "socketFd"; static constexpr int PARAM_COUNT_TWO = 2; #define SOCKET_INTERFACE(Context, executor, callback, work, name) \ - ModuleTemplate::Interface(env, info, name, work, SocketAsyncWork::executor, SocketAsyncWork::callback) + ModuleTemplate::InterfaceWithSharedManager(env, info, name, work, \ + SocketAsyncWork::executor, SocketAsyncWork::callback) namespace OHOS::NetStack::Socket { void Finalize(napi_env, void *data, void *) { NETSTACK_LOGD("socket handle is finalized"); - auto manager = static_cast(data); - if (manager != nullptr) { + auto sharedManager = reinterpret_cast *>(data); + if (sharedManager != nullptr && *sharedManager != nullptr) { + auto manager = *sharedManager; int sock = static_cast(reinterpret_cast(manager->GetData())); if (sock != -1) { SocketExec::SingletonSocketConfig::GetInstance().RemoveServerSocket(sock); close(sock); manager->SetData(reinterpret_cast(-1)); } - EventManager::SetInvalid(manager); + delete sharedManager; } } void FinalizeTcpSocketServer(napi_env, void *data, void *) { NETSTACK_LOGI("tcp socket server handle is finalized"); - auto manager = static_cast(data); - if (manager != nullptr) { + auto sharedManager = reinterpret_cast *>(data); + if (sharedManager != nullptr && *sharedManager != nullptr) { + auto manager = *sharedManager; int sock = static_cast(reinterpret_cast(manager->GetData())); if (sock != -1) { SocketExec::SingletonSocketConfig::GetInstance().RemoveServerSocket(sock); @@ -150,14 +153,15 @@ void FinalizeTcpSocketServer(napi_env, void *data, void *) shutdown(sock, SHUT_RDWR); manager->SetData(reinterpret_cast(-1)); } - EventManager::SetInvalid(manager); + delete sharedManager; } } void FinalizeLocalsocketServer(napi_env, void *data, void *) { - EventManager *manager = reinterpret_cast(data); - if (manager != nullptr) { + auto sharedManager = reinterpret_cast *>(data); + if (sharedManager != nullptr && *sharedManager != nullptr) { + auto manager = *sharedManager; if (auto serverMgr = reinterpret_cast(manager->GetData()); serverMgr != nullptr) { NETSTACK_LOGI("localsocket server handle is finalized, fd: %{public}d", serverMgr->sockfd_); #if !defined(MAC_PLATFORM) && !defined(IOS_PLATFORM) @@ -177,14 +181,15 @@ void FinalizeLocalsocketServer(napi_env, void *data, void *) serverMgr->WaitForEndingLoop(); delete serverMgr; } - EventManager::SetInvalid(manager); + delete sharedManager; } } void FinalizeLocalSocket(napi_env, void *data, void *) { - auto manager = static_cast(data); - if (manager != nullptr) { + auto sharedManager = reinterpret_cast *>(data); + if (sharedManager != nullptr && *sharedManager != nullptr) { + auto manager = *sharedManager; if (auto pMgr = reinterpret_cast(manager->GetData()); pMgr != nullptr) { NETSTACK_LOGI("localsocket handle is finalized, fd: %{public}d", pMgr->sockfd_); if (pMgr->sockfd_ > 0) { @@ -193,7 +198,7 @@ void FinalizeLocalSocket(napi_env, void *data, void *) } delete pMgr; } - EventManager::SetInvalid(manager); + delete sharedManager; } } @@ -205,15 +210,18 @@ static bool SetSocket(napi_env env, napi_value thisVal, BaseContext *context, in return false; } NapiUtils::SetUint32Property(env, error, KEY_ERROR_CODE, errno); - context->Emit(EVENT_ERROR, std::make_pair(NapiUtils::GetUndefined(env), error)); + context->EmitSharedManager(EVENT_ERROR, std::make_pair(NapiUtils::GetUndefined(env), error)); return false; } - EventManager *manager = nullptr; - if (napi_unwrap(env, thisVal, reinterpret_cast(&manager)) != napi_ok || manager == nullptr) { + std::shared_ptr *sharedManager = nullptr; + if (napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)) != napi_ok || sharedManager == nullptr) { + return false; + } + auto manager = *sharedManager; + if (manager == nullptr) { return false; } - manager->SetData(reinterpret_cast(sock)); NapiUtils::SetInt32Property(env, thisVal, KEY_SOCKET_FD, sock); return true; @@ -230,7 +238,7 @@ static bool MakeTcpClientBindSocket(napi_env env, napi_value thisVal, BindContex return false; } NETSTACK_LOGD("bind ip family is %{public}d", context->address_.GetSaFamily()); - if (context->GetManager()->GetData() != nullptr) { + if (context->GetSharedManager()->GetData() != nullptr) { NETSTACK_LOGE("tcp connect has been called"); return true; } @@ -254,7 +262,7 @@ static bool MakeTcpClientConnectSocket(napi_env env, napi_value thisVal, Connect } NETSTACK_LOGD("connect ip family is %{public}d", context->options.address.GetSaFamily()); - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager != nullptr && manager->GetData() != nullptr && static_cast(reinterpret_cast(manager->GetData())) != -1) { @@ -343,14 +351,18 @@ static bool SetSocketManager(napi_env env, napi_value thisVal, BaseContext *cont return false; } NapiUtils::SetUint32Property(env, error, KEY_ERROR_CODE, errno); - context->Emit(EVENT_ERROR, std::make_pair(NapiUtils::GetUndefined(env), error)); + context->EmitSharedManager(EVENT_ERROR, std::make_pair(NapiUtils::GetUndefined(env), error)); return false; } - EventManager *manager = nullptr; - if (napi_unwrap(env, thisVal, reinterpret_cast(&manager)) != napi_ok || manager == nullptr) { + std::shared_ptr *sharedManager = nullptr; + if (napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)) != napi_ok || sharedManager == nullptr) { NETSTACK_LOGE("SetSocketManager unwrap err"); return false; } + auto manager = *sharedManager; + if (manager == nullptr) { + return false; + } manager->SetData(reinterpret_cast(mgr)); NapiUtils::SetInt32Property(env, thisVal, KEY_SOCKET_FD, mgr->sockfd_); return true; @@ -466,22 +478,23 @@ napi_value SocketModuleExports::InitSocketModule(napi_env env, napi_value export napi_value SocketModuleExports::ConstructUDPSocketInstance(napi_env env, napi_callback_info info) { - return ModuleTemplate::NewInstance(env, info, INTERFACE_UDP_SOCKET, Finalize); + return ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_UDP_SOCKET, Finalize); } napi_value SocketModuleExports::ConstructMulticastSocketInstance(napi_env env, napi_callback_info info) { - return ModuleTemplate::NewInstance(env, info, INTERFACE_MULTICAST_SOCKET, Finalize); + return ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_MULTICAST_SOCKET, Finalize); } napi_value SocketModuleExports::ConstructLocalSocketInstance(napi_env env, napi_callback_info info) { - return ModuleTemplate::NewInstance(env, info, INTERFACE_LOCAL_SOCKET, FinalizeLocalSocket); + return ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_LOCAL_SOCKET, FinalizeLocalSocket); } napi_value SocketModuleExports::ConstructLocalSocketServerInstance(napi_env env, napi_callback_info info) { - return ModuleTemplate::NewInstance(env, info, INTERFACE_LOCAL_SOCKET_SERVER, FinalizeLocalsocketServer); + return ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_LOCAL_SOCKET_SERVER, + FinalizeLocalsocketServer); } void SocketModuleExports::DefineUDPSocketClass(napi_env env, napi_value exports) @@ -524,7 +537,7 @@ void SocketModuleExports::DefineMulticastSocketClass(napi_env env, napi_value ex napi_value SocketModuleExports::ConstructTCPSocketInstance(napi_env env, napi_callback_info info) { - return ModuleTemplate::NewInstance(env, info, INTERFACE_TCP_SOCKET, Finalize); + return ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_TCP_SOCKET, Finalize); } void SocketModuleExports::DefineTCPSocketClass(napi_env env, napi_value exports) @@ -580,7 +593,8 @@ void SocketModuleExports::DefineLocalSocketServerClass(napi_env env, napi_value napi_value SocketModuleExports::ConstructTCPSocketServerInstance(napi_env env, napi_callback_info info) { - return ModuleTemplate::NewInstance(env, info, INTERFACE_TCP_SOCKET_SERVER, FinalizeTcpSocketServer); + return ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_TCP_SOCKET_SERVER, + FinalizeTcpSocketServer); } static napi_value CloseServer(napi_env env, napi_callback_info info) @@ -589,9 +603,10 @@ static napi_value CloseServer(napi_env env, napi_callback_info info) if (napi_get_cb_info(env, info, nullptr, nullptr, &thisVal, nullptr) != napi_ok) { return NapiUtils::GetUndefined(env); } - EventManager *manager = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (manager != nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager != nullptr && *sharedManager != nullptr) { + auto manager = *sharedManager; int sock = static_cast(reinterpret_cast(manager->GetData())); if (sock != -1) { SocketExec::SingletonSocketConfig::GetInstance().RemoveServerSocket(sock); @@ -638,7 +653,7 @@ napi_value SocketModuleExports::UDPSocket::Bind(napi_env env, napi_callback_info napi_value SocketModuleExports::UDPSocket::Send(napi_env env, napi_callback_info info) { - return ModuleTemplate::InterfaceWithOutAsyncWork( + return ModuleTemplate::InterfaceWithOutAsyncWorkWithSharedManager( env, info, [](napi_env, napi_value, UdpSendContext *context) -> bool { SocketAsyncWork::ExecUdpSend(context->GetEnv(), context); @@ -676,12 +691,13 @@ napi_value SocketModuleExports::UDPSocket::GetSocketFd(napi_env env, napi_callba napi_value SocketModuleExports::UDPSocket::On(napi_env env, napi_callback_info info) { - return ModuleTemplate::On(env, info, {EVENT_MESSAGE, EVENT_LISTENING, EVENT_ERROR, EVENT_CLOSE}, false); + return ModuleTemplate::OnSharedManager(env, info, + {EVENT_MESSAGE, EVENT_LISTENING, EVENT_ERROR, EVENT_CLOSE}, false); } napi_value SocketModuleExports::UDPSocket::Off(napi_env env, napi_callback_info info) { - return ModuleTemplate::Off(env, info, {EVENT_MESSAGE, EVENT_LISTENING, EVENT_ERROR, EVENT_CLOSE}); + return ModuleTemplate::OffSharedManager(env, info, {EVENT_MESSAGE, EVENT_LISTENING, EVENT_ERROR, EVENT_CLOSE}); } /* udp multicast */ @@ -740,7 +756,7 @@ napi_value SocketModuleExports::TCPSocket::Connect(napi_env env, napi_callback_i napi_value SocketModuleExports::TCPSocket::Send(napi_env env, napi_callback_info info) { - return ModuleTemplate::InterfaceWithOutAsyncWork( + return ModuleTemplate::InterfaceWithOutAsyncWorkWithSharedManager( env, info, [](napi_env, napi_value, TcpSendContext *context) -> bool { SocketAsyncWork::ExecTcpSend(context->GetEnv(), context); @@ -784,12 +800,12 @@ napi_value SocketModuleExports::TCPSocket::GetSocketFd(napi_env env, napi_callba napi_value SocketModuleExports::TCPSocket::On(napi_env env, napi_callback_info info) { - return ModuleTemplate::On(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); + return ModuleTemplate::OnSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); } napi_value SocketModuleExports::TCPSocket::Off(napi_env env, napi_callback_info info) { - return ModuleTemplate::Off(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); + return ModuleTemplate::OffSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); } /* tcp connection async works */ @@ -839,14 +855,15 @@ napi_value SocketModuleExports::TCPConnection::GetLocalAddress(napi_env env, nap napi_value SocketModuleExports::TCPConnection::On(napi_env env, napi_callback_info info) { - napi_value ret = ModuleTemplate::On(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); + napi_value ret = ModuleTemplate::OnSharedManager(env, info, + {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); SocketExec::NotifyRegisterEvent(); return ret; } napi_value SocketModuleExports::TCPConnection::Off(napi_env env, napi_callback_info info) { - return ModuleTemplate::Off(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); + return ModuleTemplate::OffSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); } /* tcp server async works */ @@ -876,12 +893,12 @@ napi_value SocketModuleExports::TCPServerSocket::SetExtraOptions(napi_env env, n napi_value SocketModuleExports::TCPServerSocket::On(napi_env env, napi_callback_info info) { - return ModuleTemplate::On(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); + return ModuleTemplate::OnSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); } napi_value SocketModuleExports::TCPServerSocket::Off(napi_env env, napi_callback_info info) { - return ModuleTemplate::Off(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); + return ModuleTemplate::OffSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); } /* local socket */ @@ -899,7 +916,7 @@ napi_value SocketModuleExports::LocalSocket::Connect(napi_env env, napi_callback napi_value SocketModuleExports::LocalSocket::Send(napi_env env, napi_callback_info info) { - return ModuleTemplate::InterfaceWithOutAsyncWork( + return ModuleTemplate::InterfaceWithOutAsyncWorkWithSharedManager( env, info, [](napi_env, napi_value, LocalSocketSendContext *context) -> bool { SocketAsyncWork::ExecLocalSocketSend(context->GetEnv(), context); @@ -946,12 +963,12 @@ napi_value SocketModuleExports::LocalSocket::GetExtraOptions(napi_env env, napi_ napi_value SocketModuleExports::LocalSocket::On(napi_env env, napi_callback_info info) { - return ModuleTemplate::On(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); + return ModuleTemplate::OnSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); } napi_value SocketModuleExports::LocalSocket::Off(napi_env env, napi_callback_info info) { - return ModuleTemplate::Off(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); + return ModuleTemplate::OffSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); } /* local socket server */ @@ -993,12 +1010,12 @@ napi_value SocketModuleExports::LocalSocketServer::GetExtraOptions(napi_env env, napi_value SocketModuleExports::LocalSocketServer::On(napi_env env, napi_callback_info info) { - return ModuleTemplate::On(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); + return ModuleTemplate::OnSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}, false); } napi_value SocketModuleExports::LocalSocketServer::Off(napi_env env, napi_callback_info info) { - return ModuleTemplate::Off(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); + return ModuleTemplate::OffSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); } /* localsocket connection */ @@ -1053,12 +1070,13 @@ napi_value SocketModuleExports::LocalSocketConnection::On(napi_env env, napi_cal if (std::find(events.begin(), events.end(), event) == events.end()) { return NapiUtils::GetUndefined(env); } - EventManager *manager = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (manager == nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager == nullptr || *sharedManager == nullptr) { NETSTACK_LOGE("failed to unwrap"); return NapiUtils::GetUndefined(env); } + auto manager = *sharedManager; manager->AddListener(env, event, params[PARAM_COUNT_TWO - 1], false, false); if (event == EVENT_MESSAGE) { if (auto mgr = reinterpret_cast(manager->GetData()); @@ -1071,7 +1089,7 @@ napi_value SocketModuleExports::LocalSocketConnection::On(napi_env env, napi_cal napi_value SocketModuleExports::LocalSocketConnection::Off(napi_env env, napi_callback_info info) { - return ModuleTemplate::Off(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); + return ModuleTemplate::OffSharedManager(env, info, {EVENT_MESSAGE, EVENT_CONNECT, EVENT_ERROR, EVENT_CLOSE}); } static napi_module g_socketModule = { diff --git a/frameworks/js/napi/tls/include/context/tls_bind_context.h b/frameworks/js/napi/tls/include/context/tls_bind_context.h index c0f99d18efe9970d5107335fee8b4ac2903db17f..034f769bd85a56bbddf3cd74256ef9e4bb1ac65e 100644 --- a/frameworks/js/napi/tls/include/context/tls_bind_context.h +++ b/frameworks/js/napi/tls/include/context/tls_bind_context.h @@ -29,7 +29,7 @@ namespace OHOS::NetStack::TlsSocket { class TLSBindContext final : public BaseContext { public: TLSBindContext() = delete; - explicit TLSBindContext(napi_env env, EventManager *manager); + explicit TLSBindContext(napi_env env, const std::shared_ptr &manager); public: void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/tls/include/context/tls_connect_context.h b/frameworks/js/napi/tls/include/context/tls_connect_context.h index 9e30a3b68f6fe45e3b8329bfb87ed02efd317cdb..95f2447a107bd65d5337450f88fdfde308cece16 100644 --- a/frameworks/js/napi/tls/include/context/tls_connect_context.h +++ b/frameworks/js/napi/tls/include/context/tls_connect_context.h @@ -34,7 +34,7 @@ class TLSConnectContext final : public BaseContext { public: friend class TLSSocketExec; TLSConnectContext() = delete; - explicit TLSConnectContext(napi_env env, EventManager *manager); + explicit TLSConnectContext(napi_env env, const std::shared_ptr &manager); [[nodiscard]]int32_t GetErrorCode() const override; public: diff --git a/frameworks/js/napi/tls/include/context/tls_extra_context.h b/frameworks/js/napi/tls/include/context/tls_extra_context.h index 26db2b252bc2159ec5051612fe53f363561c42aa..af8721bf2ada925c61a8bdcda3255ba3dac4d499 100644 --- a/frameworks/js/napi/tls/include/context/tls_extra_context.h +++ b/frameworks/js/napi/tls/include/context/tls_extra_context.h @@ -28,7 +28,7 @@ namespace OHOS::NetStack::TlsSocket { class TLSSetExtraOptionsContext : public BaseContext { public: TLSSetExtraOptionsContext() = delete; - explicit TLSSetExtraOptionsContext(napi_env env, EventManager *manager); + explicit TLSSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager); public: void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/tls/include/context/tls_init_context.h b/frameworks/js/napi/tls/include/context/tls_init_context.h index 3ff258fd145b8db38d40704598579b2c18d44b90..632f6f64b1a8c15f706d4e8becfba412331c411a 100644 --- a/frameworks/js/napi/tls/include/context/tls_init_context.h +++ b/frameworks/js/napi/tls/include/context/tls_init_context.h @@ -28,13 +28,13 @@ namespace OHOS::NetStack::TlsSocket { class TLSInitContext final : public BaseContext { public: TLSInitContext() = delete; - explicit TLSInitContext(napi_env env, EventManager *manager); + explicit TLSInitContext(napi_env env, const std::shared_ptr &manager); public: void ParseParams(napi_value *params, size_t paramsCount) override; public: - EventManager *extManager_ = nullptr; + std::shared_ptr extManager_ = nullptr; private: bool CheckParamsType(napi_value *params, size_t paramsCount); diff --git a/frameworks/js/napi/tls/include/context/tls_napi_context.h b/frameworks/js/napi/tls/include/context/tls_napi_context.h index c8fcb03ccbf85063a89c99d0202f3c8bde6461a6..8bcb035865fc53130a551b2fc7ef1eb9e462b3a5 100644 --- a/frameworks/js/napi/tls/include/context/tls_napi_context.h +++ b/frameworks/js/napi/tls/include/context/tls_napi_context.h @@ -34,7 +34,7 @@ namespace TlsSocket { class TLSNapiContext final : public BaseContext { public: TLSNapiContext() = delete; - explicit TLSNapiContext(napi_env env, EventManager *manager); + explicit TLSNapiContext(napi_env env, const std::shared_ptr &manager); public: std::string protocol_; diff --git a/frameworks/js/napi/tls/include/context/tls_send_context.h b/frameworks/js/napi/tls/include/context/tls_send_context.h index 8eadd130e1505605f9364a20a295f2406d33303a..84a21e003a6bce366120279f6638e356bac5e04f 100644 --- a/frameworks/js/napi/tls/include/context/tls_send_context.h +++ b/frameworks/js/napi/tls/include/context/tls_send_context.h @@ -32,7 +32,7 @@ namespace TlsSocket { class TLSSendContext final : public BaseContext { public: TLSSendContext() = delete; - explicit TLSSendContext(napi_env env, EventManager *manager); + explicit TLSSendContext(napi_env env, const std::shared_ptr &manager); public: std::string data_; diff --git a/frameworks/js/napi/tls/include/context/tls_server_close_context.h b/frameworks/js/napi/tls/include/context/tls_server_close_context.h index 73c0d5e1008229590cd8f80418d705d3fd44b810..af6f9b7cdb3501288f689e02a29dd00f7872ff9f 100644 --- a/frameworks/js/napi/tls/include/context/tls_server_close_context.h +++ b/frameworks/js/napi/tls/include/context/tls_server_close_context.h @@ -32,7 +32,7 @@ namespace TlsSocketServer { class TLSServerCloseContext final : public BaseContext { public: TLSServerCloseContext() = delete; - explicit TLSServerCloseContext(napi_env env, EventManager *manager); + explicit TLSServerCloseContext(napi_env env, const std::shared_ptr &manager); public: int32_t clientId_ = 0; diff --git a/frameworks/js/napi/tls/include/context/tls_server_napi_context.h b/frameworks/js/napi/tls/include/context/tls_server_napi_context.h index d192ecd3d1f7d2db85b241d8208d18d85e26ffc4..5dd21ba03c86a2b11a5f0b71d6d13c315ef7d0ee 100644 --- a/frameworks/js/napi/tls/include/context/tls_server_napi_context.h +++ b/frameworks/js/napi/tls/include/context/tls_server_napi_context.h @@ -34,7 +34,7 @@ namespace TlsSocketServer { class TLSServerNapiContext final : public BaseContext { public: TLSServerNapiContext() = delete; - explicit TLSServerNapiContext(napi_env env, EventManager *manager); + explicit TLSServerNapiContext(napi_env env, const std::shared_ptr &manager); public: int32_t clientId_ = 0; diff --git a/frameworks/js/napi/tls/include/context/tls_server_send_context.h b/frameworks/js/napi/tls/include/context/tls_server_send_context.h index 90dc8461966b288a72964f9709360ca5f36cad67..78d6bf9e8f4ec8a473ca0d22d29d13574dc04f8d 100644 --- a/frameworks/js/napi/tls/include/context/tls_server_send_context.h +++ b/frameworks/js/napi/tls/include/context/tls_server_send_context.h @@ -32,7 +32,7 @@ namespace TlsSocketServer { class TLSServerSendContext final : public BaseContext { public: TLSServerSendContext() = delete; - explicit TLSServerSendContext(napi_env env, EventManager *manager); + explicit TLSServerSendContext(napi_env env, const std::shared_ptr &manager); public: std::string m_sendData = ""; diff --git a/frameworks/js/napi/tls/include/monitor.h b/frameworks/js/napi/tls/include/monitor.h index e22e7cadb24e8073123b5351c99d5be768fab93f..63fe07cab4ba9c747c15c37074fd160a2df2cb47 100644 --- a/frameworks/js/napi/tls/include/monitor.h +++ b/frameworks/js/napi/tls/include/monitor.h @@ -51,9 +51,11 @@ public: }; private: - void ParserEventForOn(const std::string event, const std::shared_ptr &tlsSocket, EventManager *manager); + void ParserEventForOn(const std::string event, const std::shared_ptr &tlsSocket, + const std::shared_ptr &manager); void ParserEventForOff(const std::string event, const std::shared_ptr &tlsSocket); - void AddEventMessage(const std::shared_ptr &tlsSocket, EventManager *manager) const; + void AddEventMessage(const std::shared_ptr &tlsSocket, + const std::shared_ptr &manager) const; }; } // namespace TlsSocket } // namespace NetStack diff --git a/frameworks/js/napi/tls/include/monitor_server.h b/frameworks/js/napi/tls/include/monitor_server.h index 3d467afcd1d11b40c92ca001137df2e32a971eb1..3b57ac9c2931d5d0cc7c6c23a422602ab7df3f36 100644 --- a/frameworks/js/napi/tls/include/monitor_server.h +++ b/frameworks/js/napi/tls/include/monitor_server.h @@ -46,9 +46,10 @@ public: napi_value ConnectionOn(napi_env env, napi_callback_info info); napi_value ConnectionOff(napi_env env, napi_callback_info info); - void TLSServerRegEvent(std::string event, TLSSocketServer *tlsSocketServer, EventManager *eventManager); + void TLSServerRegEvent(std::string event, TLSSocketServer *tlsSocketServer, + const std::shared_ptr &eventManager); void TLSConnectionRegEvent(std::string event, TLSSocketServer *tlsSocketServer, int clientId, - EventManager *eventManager); + const std::shared_ptr &eventManager); void TLSConnectionUnRegEvent(std::string event, TLSSocketServer *tlsSocketServer, int clientId); class MessageParma { public: @@ -74,7 +75,8 @@ public: private: std::set monitors_; - void InsertEventMessage(TLSSocketServer *tlsSocketServer, int clientId, EventManager *eventManager); + void InsertEventMessage(TLSSocketServer *tlsSocketServer, int clientId, + const std::shared_ptr &eventManager); }; } // namespace TlsSocketServer } // namespace NetStack diff --git a/frameworks/js/napi/tls/src/context/tls_bind_context.cpp b/frameworks/js/napi/tls/src/context/tls_bind_context.cpp index afadd9d3584b11505517262f69dbfc9e48433091..e893aa3c819104dc2eff62d589623264814fbafe 100644 --- a/frameworks/js/napi/tls/src/context/tls_bind_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_bind_context.cpp @@ -25,7 +25,8 @@ namespace OHOS::NetStack::TlsSocket { static constexpr std::string_view PARSE_ERROR = "address is not type of Socket::NetAddress"; -TLSBindContext::TLSBindContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TLSBindContext::TLSBindContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TLSBindContext::ParseParams(napi_value *params, size_t paramsCount) { diff --git a/frameworks/js/napi/tls/src/context/tls_connect_context.cpp b/frameworks/js/napi/tls/src/context/tls_connect_context.cpp index 685363cce8a51f5fd2bee6dc5e37d5da59aae206..b302545e993d3af5b960dcbd968fd1b480d2536f 100644 --- a/frameworks/js/napi/tls/src/context/tls_connect_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_connect_context.cpp @@ -92,7 +92,8 @@ bool ReadNecessaryOptions(napi_env env, napi_value secureOptions, TLSSecureOptio } } // namespace -TLSConnectContext::TLSConnectContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TLSConnectContext::TLSConnectContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TLSConnectContext::ParseParams(napi_value *params, size_t paramsCount) { diff --git a/frameworks/js/napi/tls/src/context/tls_extra_context.cpp b/frameworks/js/napi/tls/src/context/tls_extra_context.cpp index 9f804365e40e7090bbbfaf40d1d150a8ad8674a1..376ec0b7290d6851a360415ae7757e76120eb1a7 100644 --- a/frameworks/js/napi/tls/src/context/tls_extra_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_extra_context.cpp @@ -25,7 +25,8 @@ namespace OHOS::NetStack::TlsSocket { static constexpr std::string_view PARSE_ERROR = "first param is not type of TCPExtraOptions"; -TLSSetExtraOptionsContext::TLSSetExtraOptionsContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TLSSetExtraOptionsContext::TLSSetExtraOptionsContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TLSSetExtraOptionsContext::ParseParams(napi_value *params, size_t paramsCount) { diff --git a/frameworks/js/napi/tls/src/context/tls_init_context.cpp b/frameworks/js/napi/tls/src/context/tls_init_context.cpp index 3ae6d3b7e33d36741305edbc206e645b55709237..8997142e2dc7ee176f73da65cf2b0b98456ecc93 100644 --- a/frameworks/js/napi/tls/src/context/tls_init_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_init_context.cpp @@ -26,7 +26,8 @@ namespace OHOS::NetStack::TlsSocket { static constexpr std::string_view PARSE_ERROR = "Parameter error"; static constexpr const char *INTERFACE_TCP_SOCKET = "TCPSocket"; -TLSInitContext::TLSInitContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TLSInitContext::TLSInitContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TLSInitContext::ParseParams(napi_value *params, size_t paramsCount) { @@ -34,13 +35,15 @@ void TLSInitContext::ParseParams(napi_value *params, size_t paramsCount) if (!valid) { return; } - - auto napiRet = napi_unwrap(GetEnv(), params[0], reinterpret_cast(&extManager_)); + std::shared_ptr *sharedManager = nullptr; + auto napiRet = napi_unwrap(GetEnv(), params[0], reinterpret_cast(&sharedManager)); if (napiRet != napi_ok) { NETSTACK_LOGE("get event manager in napi_unwrap failed, napiRet is %{public}d", napiRet); return; } - + if (sharedManager != nullptr) { + extManager_ = *sharedManager; + } SetParseOK(true); } diff --git a/frameworks/js/napi/tls/src/context/tls_napi_context.cpp b/frameworks/js/napi/tls/src/context/tls_napi_context.cpp index f835ad51c272f1e429453fd34e32afdfc5d7152a..dfa5f59b4abb260c84aa09bda0c7889311915381 100644 --- a/frameworks/js/napi/tls/src/context/tls_napi_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_napi_context.cpp @@ -22,7 +22,8 @@ namespace OHOS { namespace NetStack { namespace TlsSocket { -TLSNapiContext::TLSNapiContext(napi_env env, EventManager *manager) : BaseContext(env, manager) +TLSNapiContext::TLSNapiContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) { localCert_.encodingFormat = PEM; remoteCert_.encodingFormat = PEM; diff --git a/frameworks/js/napi/tls/src/context/tls_send_context.cpp b/frameworks/js/napi/tls/src/context/tls_send_context.cpp index fc9e6381e9b9a70a67094c511e938d08709b9e1b..2d7498571cb1f64ee29d8489e3af15460f649f41 100644 --- a/frameworks/js/napi/tls/src/context/tls_send_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_send_context.cpp @@ -27,7 +27,8 @@ namespace NetStack { namespace TlsSocket { static constexpr std::string_view PARSE_ERROR = "data is not string"; -TLSSendContext::TLSSendContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TLSSendContext::TLSSendContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TLSSendContext::ParseParams(napi_value *params, size_t paramsCount) { diff --git a/frameworks/js/napi/tls/src/context/tls_server_close_context.cpp b/frameworks/js/napi/tls/src/context/tls_server_close_context.cpp index dbd56d16f181a28c715d1b931fcc9b559746e240..5e55b092fa140dcb37f2d72806edab32c26419d7 100644 --- a/frameworks/js/napi/tls/src/context/tls_server_close_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_server_close_context.cpp @@ -27,7 +27,8 @@ namespace NetStack { namespace TlsSocketServer { static constexpr std::string_view PARSE_ERROR = "data is not int"; -TLSServerCloseContext::TLSServerCloseContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TLSServerCloseContext::TLSServerCloseContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TLSServerCloseContext::ParseParams(napi_value *params, size_t paramsCount) { diff --git a/frameworks/js/napi/tls/src/context/tls_server_napi_context.cpp b/frameworks/js/napi/tls/src/context/tls_server_napi_context.cpp index e4924448dd41082aca20f707f1e9b8cb9a8e1bff..20ebc0ce317cd032fb665da5d1ec440e05d0828c 100644 --- a/frameworks/js/napi/tls/src/context/tls_server_napi_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_server_napi_context.cpp @@ -27,7 +27,8 @@ namespace NetStack { namespace TlsSocketServer { static constexpr std::string_view PARSE_ERROR = "data is not int"; -TLSServerNapiContext::TLSServerNapiContext(napi_env env, EventManager *manager) : BaseContext(env, manager) +TLSServerNapiContext::TLSServerNapiContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) { remoteCert_.encodingFormat = TlsSocket::EncodingFormat::DER; } diff --git a/frameworks/js/napi/tls/src/context/tls_server_send_context.cpp b/frameworks/js/napi/tls/src/context/tls_server_send_context.cpp index 30a87e4573dde77538a7f363f9e0588799203dfc..8eb8567d9577c69671e85a126b3fee67e5f6d524 100644 --- a/frameworks/js/napi/tls/src/context/tls_server_send_context.cpp +++ b/frameworks/js/napi/tls/src/context/tls_server_send_context.cpp @@ -31,7 +31,8 @@ namespace { constexpr std::string_view PARSE_ERROR = "options is not type of TLSServerSendOptions"; } // namespace -TLSServerSendContext::TLSServerSendContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} +TLSServerSendContext::TLSServerSendContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) {} void TLSServerSendContext::ParseParams(napi_value *params, size_t paramsCount) { diff --git a/frameworks/js/napi/tls/src/monitor.cpp b/frameworks/js/napi/tls/src/monitor.cpp index 6d469dba3ceb8af409d7439a0ae4658691aa2e21..55b4b69a8667ceb9e9b61fcc411aaf2d269aab5a 100644 --- a/frameworks/js/napi/tls/src/monitor.cpp +++ b/frameworks/js/napi/tls/src/monitor.cpp @@ -47,7 +47,7 @@ constexpr const char *PROPERTY_SIZE = "size"; constexpr const char *ON_MESSAGE = "message"; constexpr const char *ON_REMOTE_INFO = "remoteInfo"; -void ParserNullBranch(const std::string &errMessage, uv_work_t *&work, UvWorkWrapper *&workWrapper) +void ParserNullBranch(const std::string &errMessage, uv_work_t *&work, UvWorkWrapperShared *&workWrapper) { NETSTACK_LOGE("%{public}s", errMessage.c_str()); if (workWrapper != nullptr) { @@ -61,7 +61,7 @@ void ParserNullBranch(const std::string &errMessage, uv_work_t *&work, UvWorkWra } } -void SetPropertyForWorkWrapper(UvWorkWrapper *workWrapper, Monitor::MessageRecvParma *messageRecvParma, +void SetPropertyForWorkWrapper(UvWorkWrapperShared *workWrapper, Monitor::MessageRecvParma *messageRecvParma, napi_value arrayBuffer, napi_value remoteInfo, napi_value obj) { napi_value message = nullptr; @@ -86,8 +86,8 @@ void EventMessageCallback(uv_work_t *work, int status) NETSTACK_LOGE("work is nullptr"); return; } - auto workWrapper = static_cast(work->data); - auto eventManager = reinterpret_cast(workWrapper->data); + auto workWrapper = static_cast(work->data); + auto eventManager = workWrapper->manager; auto messageRecvParam = reinterpret_cast(eventManager->GetQueueData()); if (!messageRecvParam) { NETSTACK_LOGE("messageRecvParam is nullptr"); @@ -111,7 +111,7 @@ void EventMessageCallback(uv_work_t *work, int status) } SetPropertyForWorkWrapper(workWrapper, messageRecvParam, arrayBuffer, remoteInfo, obj); - if (workWrapper->manager == nullptr || !EventManager::IsManagerValid(workWrapper->manager)) { + if (workWrapper->manager == nullptr) { delete messageRecvParam; ParserNullBranch("manager is invalid", work, workWrapper); return; @@ -128,7 +128,7 @@ void EventConnectCloseCallback(uv_work_t *work, int status) NETSTACK_LOGE("work is nullptr"); return; } - auto workWrapper = static_cast(work->data); + auto workWrapper = static_cast(work->data); if (workWrapper == nullptr) { NETSTACK_LOGE("workWrapper is nullptr"); delete work; @@ -156,7 +156,7 @@ void EventErrorCallback(uv_work_t *work, int status) NETSTACK_LOGE("work is nullptr"); return; } - auto workWrapper = static_cast(work->data); + auto workWrapper = static_cast(work->data); if (workWrapper == nullptr) { NETSTACK_LOGE("workWrapper is nullptr"); delete work; @@ -194,44 +194,46 @@ Monitor::Monitor() {} Monitor::~Monitor() {} void Monitor::ParserEventForOn(const std::string event, const std::shared_ptr &tlsSocket, - EventManager *manager) + const std::shared_ptr &manager) { if (event == EVENT_MESSAGE) { AddEventMessage(tlsSocket, manager); } if (event == EVENT_CLOSE) { tlsSocket->OnClose([this, manager]() { - if (EventManager::IsManagerValid(manager)) { - manager->EmitByUv(std::string(EVENT_CLOSE), nullptr, EventConnectCloseCallback); + if (manager != nullptr) { + manager->EmitByUvWithoutCheckShared(std::string(EVENT_CLOSE), nullptr, EventConnectCloseCallback); } }); } if (event == EVENT_CONNECT) { tlsSocket->OnConnect([this, manager]() { - if (EventManager::IsManagerValid(manager)) { - manager->EmitByUv(std::string(EVENT_CONNECT), nullptr, EventConnectCloseCallback); + if (manager != nullptr) { + manager->EmitByUvWithoutCheckShared(std::string(EVENT_CONNECT), nullptr, EventConnectCloseCallback); } }); } if (event == EVENT_ERROR) { tlsSocket->OnError([this, manager](auto errorNumber, auto errorString) { - if (EventManager::IsManagerValid(manager) && manager->HasEventListener(std::string(EVENT_ERROR))) { + if (manager != nullptr && manager->HasEventListener(std::string(EVENT_ERROR))) { ErrorRecvParma *errorRecvParma = new ErrorRecvParma(); errorRecvParma->errorNumber_ = errorNumber; errorRecvParma->errorString_ = errorString; - manager->EmitByUv(std::string(EVENT_ERROR), static_cast(errorRecvParma), EventErrorCallback); + manager->EmitByUvWithoutCheckShared(std::string(EVENT_ERROR), static_cast(errorRecvParma), + EventErrorCallback); } }); } } -void Monitor::AddEventMessage(const std::shared_ptr &tlsSocket, EventManager *manager) const +void Monitor::AddEventMessage(const std::shared_ptr &tlsSocket, + const std::shared_ptr &manager) const { if (tlsSocket == nullptr) { return; } tlsSocket->OnMessage([this, manager](auto data, auto remoteInfo) { - if (EventManager::IsManagerValid(manager) && manager->HasEventListener(std::string(EVENT_MESSAGE))) { + if (manager != nullptr && manager->HasEventListener(std::string(EVENT_MESSAGE))) { auto messageRecvParma = new (std::nothrow) MessageRecvParma(); if (messageRecvParma == nullptr) { return; @@ -239,7 +241,7 @@ void Monitor::AddEventMessage(const std::shared_ptr &tlsSocket, Event messageRecvParma->data_ = data; messageRecvParma->remoteInfo_ = remoteInfo; manager->SetQueueData(reinterpret_cast(messageRecvParma)); - manager->EmitByUv(std::string(EVENT_MESSAGE), reinterpret_cast(manager), EventMessageCallback); + manager->EmitByUvWithoutCheckShared(std::string(EVENT_MESSAGE), nullptr, EventMessageCallback); } }); } @@ -261,12 +263,13 @@ napi_value Monitor::On(napi_env env, napi_callback_info info) return NapiUtils::GetUndefined(env); } } - EventManager *manager = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (manager == nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager == nullptr || *sharedManager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return NapiUtils::GetUndefined(env); } + auto manager = *sharedManager; auto tlsSocket = reinterpret_cast *>(manager->GetData()); if (tlsSocket == nullptr) { NETSTACK_LOGE("tlsSocket is null"); @@ -321,12 +324,13 @@ napi_value Monitor::Off(napi_env env, napi_callback_info info) return NapiUtils::GetUndefined(env); } } - EventManager *manager = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (manager == nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager == nullptr || *sharedManager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return NapiUtils::GetUndefined(env); } + auto manager = *sharedManager; auto tlsSocket = reinterpret_cast *>(manager->GetData()); if (tlsSocket == nullptr) { NETSTACK_LOGE("tlsSocket is null"); diff --git a/frameworks/js/napi/tls/src/monitor_server.cpp b/frameworks/js/napi/tls/src/monitor_server.cpp index 874745012b9910704b430cae456d6df1d50995c9..d962cf62be477c71e9ae1956080988559e61bf8c 100644 --- a/frameworks/js/napi/tls/src/monitor_server.cpp +++ b/frameworks/js/napi/tls/src/monitor_server.cpp @@ -54,21 +54,25 @@ napi_value NewInstanceWithConstructor(napi_env env, napi_callback_info info, nap napi_value result = nullptr; NAPI_CALL(env, napi_new_instance(env, jsConstructor, 0, nullptr, &result)); - std::shared_ptr manager = eventManager; - + auto sharedManager = new (std::nothrow) std::shared_ptr(); + if (sharedManager == nullptr) { + return result; + } + *sharedManager = eventManager; napi_wrap( - env, result, reinterpret_cast(manager.get()), + env, result, reinterpret_cast(sharedManager), [](napi_env, void *data, void *) { NETSTACK_LOGI("socket handle is finalized"); - auto manager = static_cast(data); - if (manager != nullptr) { + auto sharedManager = static_cast *>(data); + if (sharedManager != nullptr) { + auto manager = *sharedManager; auto tlsServer = static_cast(manager->GetData()); if (tlsServer != nullptr) { tlsServer->CloseConnectionByEventManager(manager); tlsServer->DeleteConnectionByEventManager(manager); } - EventManager::SetInvalidWithoutDelete(manager); } + delete sharedManager; }, nullptr, nullptr); @@ -166,7 +170,7 @@ void EventMessageCallback(uv_work_t *work, int status) NETSTACK_LOGE("work is nullptr"); return; } - auto workWrapper = static_cast(work->data); + auto workWrapper = static_cast(work->data); if (workWrapper == nullptr) { NETSTACK_LOGE("workWrapper is nullptr"); delete work; @@ -209,7 +213,7 @@ void EventConnectCallback(uv_work_t *work, int status) NETSTACK_LOGE("work is nullptr"); return; } - auto workWrapper = static_cast(work->data); + auto workWrapper = static_cast(work->data); if (workWrapper == nullptr) { NETSTACK_LOGE("workWrapper is nullptr"); delete work; @@ -241,7 +245,7 @@ void EventCloseCallback(uv_work_t *work, int status) NETSTACK_LOGE("work is nullptr"); return; } - auto workWrapper = static_cast(work->data); + auto workWrapper = static_cast(work->data); if (workWrapper == nullptr) { NETSTACK_LOGE("workWrapper is nullptr"); delete work; @@ -275,7 +279,7 @@ void EventErrorCallback(uv_work_t *work, int status) NETSTACK_LOGE("work is nullptr"); return; } - auto workWrapper = static_cast(work->data); + auto workWrapper = static_cast(work->data); if (workWrapper == nullptr) { NETSTACK_LOGE("workWrapper is nullptr"); delete work; @@ -325,13 +329,14 @@ napi_value MonitorServer::On(napi_env env, napi_callback_info info) napi_throw_error(env, std::to_string(PARSE_ERROR_CODE).c_str(), PARSE_ERROR_MSG); return NapiUtils::GetUndefined(env); } - EventManager *manager_ = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager_)); - if (manager_ == nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager == nullptr || *sharedManager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return NapiUtils::GetUndefined(env); } - auto tlsSocketServer = reinterpret_cast(manager_->GetData()); + auto manager = *sharedManager; + auto tlsSocketServer = reinterpret_cast(manager->GetData()); if (tlsSocketServer == nullptr) { NETSTACK_LOGE("tlsSocketServer is null"); return NapiUtils::GetUndefined(env); @@ -343,8 +348,8 @@ napi_value MonitorServer::On(napi_env env, napi_callback_info info) NETSTACK_LOGE("monitor is exits %{public}s", event.c_str()); return NapiUtils::GetUndefined(env); } - manager_->AddListener(env, event, params[1], false, false); - TLSServerRegEvent(event, tlsSocketServer, manager_); + manager->AddListener(env, event, params[1], false, false); + TLSServerRegEvent(event, tlsSocketServer, manager); return NapiUtils::GetUndefined(env); } @@ -370,13 +375,14 @@ napi_value MonitorServer::ConnectionOn(napi_env env, napi_callback_info info) napi_throw_error(env, std::to_string(PARSE_ERROR_CODE).c_str(), PARSE_ERROR_MSG); return NapiUtils::GetUndefined(env); } - EventManager *manager_ = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager_)); - if (manager_ == nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager == nullptr || *sharedManager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return NapiUtils::GetUndefined(env); } - auto tlsSocketServer = reinterpret_cast(manager_->GetData()); + auto manager = *sharedManager; + auto tlsSocketServer = reinterpret_cast(manager->GetData()); if (tlsSocketServer == nullptr) { NETSTACK_LOGE("tlsSocketServer is null"); return NapiUtils::GetUndefined(env); @@ -384,8 +390,8 @@ napi_value MonitorServer::ConnectionOn(napi_env env, napi_callback_info info) const std::string event = NapiUtils::GetStringFromValueUtf8(env, params[0]); - manager_->AddListener(env, event, params[1], false, false); - TLSConnectionRegEvent(event, tlsSocketServer, clientid, manager_); + manager->AddListener(env, event, params[1], false, false); + TLSConnectionRegEvent(event, tlsSocketServer, clientid, manager); return NapiUtils::GetUndefined(env); } @@ -408,13 +414,14 @@ napi_value MonitorServer::Off(napi_env env, napi_callback_info info) napi_throw_error(env, std::to_string(PARSE_ERROR_CODE).c_str(), PARSE_ERROR_MSG); return NapiUtils::GetUndefined(env); } - EventManager *manager_ = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager_)); - if (manager_ == nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager == nullptr || *sharedManager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return NapiUtils::GetUndefined(env); } - auto tlsSocketServer = reinterpret_cast(manager_->GetData()); + auto manager = *sharedManager; + auto tlsSocketServer = reinterpret_cast(manager->GetData()); if (tlsSocketServer == nullptr) { NETSTACK_LOGE("tlsSocketServer is null"); return NapiUtils::GetUndefined(env); @@ -437,12 +444,10 @@ napi_value MonitorServer::Off(napi_env env, napi_callback_info info) tlsSocketServer->OffError(); } - if (manager_ != nullptr) { - if (paramsCount == PARAM_OPTION_CALLBACK) { - manager_->DeleteListener(event, params[1]); - } else { - manager_->DeleteListener(event); - } + if (paramsCount == PARAM_OPTION_CALLBACK) { + manager->DeleteListener(event, params[1]); + } else { + manager->DeleteListener(event); } return NapiUtils::GetUndefined(env); } @@ -469,13 +474,14 @@ napi_value MonitorServer::ConnectionOff(napi_env env, napi_callback_info info) napi_throw_error(env, std::to_string(PARSE_ERROR_CODE).c_str(), PARSE_ERROR_MSG); return NapiUtils::GetUndefined(env); } - EventManager *manager_ = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager_)); - if (manager_ == nullptr) { + std::shared_ptr *sharedManager = nullptr; + napi_unwrap(env, thisVal, reinterpret_cast(&sharedManager)); + if (sharedManager == nullptr || *sharedManager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return NapiUtils::GetUndefined(env); } - auto tlsSocketServer = reinterpret_cast(manager_->GetData()); + auto manager = *sharedManager; + auto tlsSocketServer = reinterpret_cast(manager->GetData()); if (tlsSocketServer == nullptr) { NETSTACK_LOGE("tlsSocketServer is null"); return NapiUtils::GetUndefined(env); @@ -488,18 +494,16 @@ napi_value MonitorServer::ConnectionOff(napi_env env, napi_callback_info info) return NapiUtils::GetUndefined(env); } TLSConnectionUnRegEvent(event, tlsSocketServer, clientid); - if (manager_ != nullptr) { - if (paramsCount == PARAM_OPTION_CALLBACK) { - manager_->DeleteListener(event, params[1]); - } else { - manager_->DeleteListener(event); - } + if (paramsCount == PARAM_OPTION_CALLBACK) { + manager->DeleteListener(event, params[1]); + } else { + manager->DeleteListener(event); } return NapiUtils::GetUndefined(env); } void MonitorServer::TLSServerRegEvent(std::string event, TLSSocketServer *tlsSocketServer, - EventManager *ServerEventManager) + const std::shared_ptr &ServerEventManager) { if (event == EVENT_CONNECT) { monitors_.insert(EVENT_CONNECT); @@ -509,7 +513,8 @@ void MonitorServer::TLSServerRegEvent(std::string event, TLSSocketServer *tlsSoc auto messageParma = new MonitorServer::MessageParma(); messageParma->clientID = clientFd; messageParma->eventManager = eventManager; - ServerEventManager->EmitByUv(std::string(EVENT_CONNECT), messageParma, EventConnectCallback); + ServerEventManager->EmitByUvWithoutCheckShared(std::string(EVENT_CONNECT), messageParma, + EventConnectCallback); } }); } @@ -518,13 +523,14 @@ void MonitorServer::TLSServerRegEvent(std::string event, TLSSocketServer *tlsSoc tlsSocketServer->OnError([this, ServerEventManager](auto errorNumber, auto errorString) { errorNumber_ = errorNumber; errorString_ = errorString; - ServerEventManager->EmitByUv(std::string(EVENT_ERROR), static_cast(this), EventErrorCallback); + ServerEventManager->EmitByUvWithoutCheckShared(std::string(EVENT_ERROR), static_cast(this), + EventErrorCallback); }); } } void MonitorServer::TLSConnectionRegEvent(std::string event, TLSSocketServer *tlsSocketServer, int clientId, - EventManager *eventManager) + const std::shared_ptr &eventManager) { if (event == EVENT_MESSAGE) { InsertEventMessage(tlsSocketServer, clientId, eventManager); @@ -534,7 +540,8 @@ void MonitorServer::TLSConnectionRegEvent(std::string event, TLSSocketServer *tl auto ptrConnection = tlsSocketServer->GetConnectionByClientID(clientId); if (ptrConnection != nullptr) { ptrConnection->OnClose([this, eventManager](auto clientFd) { - eventManager->EmitByUv(std::string(EVENT_CLOSE), static_cast(this), EventCloseCallback); + eventManager->EmitByUvWithoutCheckShared(std::string(EVENT_CLOSE), static_cast(this), + EventCloseCallback); }); } } @@ -543,13 +550,15 @@ void MonitorServer::TLSConnectionRegEvent(std::string event, TLSSocketServer *tl auto ptrConnection = tlsSocketServer->GetConnectionByClientID(clientId); if (ptrConnection != nullptr) { ptrConnection->OnError([this, eventManager](auto errorNumber, auto errorString) { - eventManager->EmitByUv(std::string(EVENT_ERROR), static_cast(this), EventErrorCallback); + eventManager->EmitByUvWithoutCheckShared(std::string(EVENT_ERROR), static_cast(this), + EventErrorCallback); }); } } } -void MonitorServer::InsertEventMessage(TLSSocketServer *tlsSocketServer, int clientId, EventManager *eventManager) +void MonitorServer::InsertEventMessage(TLSSocketServer *tlsSocketServer, int clientId, + const std::shared_ptr &eventManager) { if (tlsSocketServer == nullptr) { return; @@ -566,7 +575,8 @@ void MonitorServer::InsertEventMessage(TLSSocketServer *tlsSocketServer, int cli messageRecvParma->remoteInfo_.SetFamilyByStr(remoteInfo.GetFamily()); messageRecvParma->remoteInfo_.SetPort(remoteInfo.GetPort()); messageRecvParma->remoteInfo_.SetSize(remoteInfo.GetSize()); - eventManager->EmitByUv(std::string(EVENT_MESSAGE), messageRecvParma, EventMessageCallback); + eventManager->EmitByUvWithoutCheckShared(std::string(EVENT_MESSAGE), messageRecvParma, + EventMessageCallback); } }); } diff --git a/frameworks/js/napi/tls/src/tls_socket_server.cpp b/frameworks/js/napi/tls/src/tls_socket_server.cpp index e55302eeeb0c089c0bfd46e816c9b7dec19456c1..e05ae4b381573b725c2d11be67d349f10badaadb 100644 --- a/frameworks/js/napi/tls/src/tls_socket_server.cpp +++ b/frameworks/js/napi/tls/src/tls_socket_server.cpp @@ -1443,7 +1443,6 @@ void TLSSocketServer::SetTlsConnectionSecureOptions(const TlsSocket::TLSConnectO fds_[g_userCounter].revents = 0; AddConnect(connectFD, connection); auto ptrEventManager = std::make_shared(); - EventManager::SetValid(ptrEventManager.get()); ptrEventManager->SetData(this); connection->SetEventManager(ptrEventManager); CallOnConnectCallback(clientID, ptrEventManager); @@ -1523,11 +1522,11 @@ void TLSSocketServer::PollThread(const TlsSocket::TLSConnectOptions &tlsListenOp } std::shared_ptr TLSSocketServer::GetConnectionByClientEventManager( - const EventManager *eventManager) + const std::shared_ptr &eventManager) { std::lock_guard its_lock(connectMutex_); auto it = std::find_if(clientIdConnections_.begin(), clientIdConnections_.end(), [eventManager](const auto& pair) { - return pair.second->GetEventManager().get() == eventManager; + return pair.second->GetEventManager() == eventManager; }); if (it == clientIdConnections_.end()) { return nullptr; @@ -1535,7 +1534,7 @@ std::shared_ptr TLSSocketServer::GetConnectionByCli return it->second; } -void TLSSocketServer::CloseConnectionByEventManager(EventManager *eventManager) +void TLSSocketServer::CloseConnectionByEventManager(const std::shared_ptr &eventManager) { std::shared_ptr ptrConnection = GetConnectionByClientEventManager(eventManager); @@ -1544,11 +1543,11 @@ void TLSSocketServer::CloseConnectionByEventManager(EventManager *eventManager) } } -void TLSSocketServer::DeleteConnectionByEventManager(EventManager *eventManager) +void TLSSocketServer::DeleteConnectionByEventManager(const std::shared_ptr &eventManager) { std::lock_guard its_lock(connectMutex_); for (auto it = clientIdConnections_.begin(); it != clientIdConnections_.end(); ++it) { - if (it->second->GetEventManager().get() == eventManager) { + if (it->second->GetEventManager() == eventManager) { it = clientIdConnections_.erase(it); break; } diff --git a/frameworks/js/napi/tls/src/tlssocket_exec.cpp b/frameworks/js/napi/tls/src/tlssocket_exec.cpp index b45b3bea57d9d42ba02a7e652de3c79de9d8a6cc..2dd0f85fee3eb7386d6d774a74f9fe6a5c02b434 100644 --- a/frameworks/js/napi/tls/src/tlssocket_exec.cpp +++ b/frameworks/js/napi/tls/src/tlssocket_exec.cpp @@ -68,7 +68,7 @@ static inline bool IsConnected(int sockFD) bool TLSSocketExec::ExecInit(TLSInitContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); TLSSocketThrowException(context, SYSTEM_INTERNAL_ERROR); @@ -109,7 +109,7 @@ bool TLSSocketExec::ExecInit(TLSInitContext *context) bool TLSSocketExec::ExecGetCertificate(GetCertificateContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -161,7 +161,7 @@ static std::shared_ptr InitSocks5TlsInstance( static int HandleTcpProxyOptions(TLSConnectContext *context, std::shared_ptr shared) { - EventManager *eventMgr = context->GetManager(); + auto eventMgr = context->GetSharedManager(); if (eventMgr == nullptr) { NETSTACK_LOGE("event manager is null"); return -1; @@ -200,7 +200,7 @@ bool TLSSocketExec::ExecConnect(TLSConnectContext *context) } context->connectOptions_.address_.SetRawAddress(ConvertAddressToIp( context->connectOptions_.address_.GetAddress(), context->connectOptions_.address_.GetSaFamily())); - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -234,7 +234,7 @@ bool TLSSocketExec::ExecConnect(TLSConnectContext *context) bool TLSSocketExec::ExecGetCipherSuites(GetCipherSuitesContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -263,7 +263,7 @@ bool TLSSocketExec::ExecGetCipherSuites(GetCipherSuitesContext *context) bool TLSSocketExec::ExecGetRemoteCertificate(GetRemoteCertificateContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -292,7 +292,7 @@ bool TLSSocketExec::ExecGetRemoteCertificate(GetRemoteCertificateContext *contex bool TLSSocketExec::ExecGetProtocol(GetProtocolContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -321,7 +321,7 @@ bool TLSSocketExec::ExecGetProtocol(GetProtocolContext *context) bool TLSSocketExec::ExecGetSignatureAlgorithms(GetSignatureAlgorithmsContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -350,7 +350,7 @@ bool TLSSocketExec::ExecGetSignatureAlgorithms(GetSignatureAlgorithmsContext *co bool TLSSocketExec::ExecSend(TLSSendContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -381,7 +381,7 @@ bool TLSSocketExec::ExecSend(TLSSendContext *context) bool TLSSocketExec::ExecClose(TLSNapiContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -414,7 +414,7 @@ bool TLSSocketExec::ExecClose(TLSNapiContext *context) bool TLSSocketExec::ExecBind(TLSBindContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -450,7 +450,7 @@ bool TLSSocketExec::ExecBind(TLSBindContext *context) bool TLSSocketExec::ExecGetRemoteAddress(TLSGetRemoteAddressContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -482,7 +482,7 @@ bool TLSSocketExec::ExecGetLocalAddress(TLSGetLocalAddressContext *context) if (context == nullptr) { return false; } - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { context->SetNeedThrowException(true); context->SetError(TlsSocket::TlsSocketError::TLS_ERR_NO_BIND, @@ -532,7 +532,7 @@ bool TLSSocketExec::ExecGetLocalAddress(TLSGetLocalAddressContext *context) bool TLSSocketExec::ExecGetState(TLSGetStateContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); context->SetError(TLS_ERR_SYS_EINVAL, MakeErrorMessage(TLS_ERR_SYS_EINVAL)); @@ -559,7 +559,7 @@ bool TLSSocketExec::ExecGetState(TLSGetStateContext *context) bool TLSSocketExec::ExecSetExtraOptions(TLSSetExtraOptionsContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -587,7 +587,7 @@ bool TLSSocketExec::ExecSetExtraOptions(TLSSetExtraOptionsContext *context) bool TLSSocketExec::ExecGetSocketFd(TLSGetSocketFdContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -705,7 +705,7 @@ napi_value TLSSocketExec::SendCallback(TLSSendContext *context) napi_value TLSSocketExec::CloseCallback(TLSNapiContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager != nullptr) { NETSTACK_LOGD("tls socket close, delete js ref"); manager->DeleteEventReference(context->GetEnv()); @@ -715,8 +715,8 @@ napi_value TLSSocketExec::CloseCallback(TLSNapiContext *context) napi_value TLSSocketExec::BindCallback(TLSBindContext *context) { - context->Emit(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -750,7 +750,7 @@ napi_value TLSSocketExec::GetLocalAddressCallback(TLSGetLocalAddressContext *con if (NapiUtils::GetValueType(context->GetEnv(), obj) != napi_object) { return NapiUtils::GetUndefined(context->GetEnv()); } - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return obj; diff --git a/frameworks/js/napi/tls/src/tlssocket_module.cpp b/frameworks/js/napi/tls/src/tlssocket_module.cpp index 348f4328cd6d45b8fb41124edccfd9caaeff8e2c..32e412410a0ccaa2a61df239b1497be638111164 100644 --- a/frameworks/js/napi/tls/src/tlssocket_module.cpp +++ b/frameworks/js/napi/tls/src/tlssocket_module.cpp @@ -43,95 +43,90 @@ static constexpr const char *PROTOCOL_TLSV12 = "TLSv12"; void Finalize(napi_env, void *data, void *) { NETSTACK_LOGI("tls socket is finalized"); - auto manager = reinterpret_cast(data); - if (manager != nullptr) { - EventManager::SetInvalid(manager); - } + auto sharedManager = reinterpret_cast *>(data); + delete sharedManager; } } // namespace napi_value TLSSocketModuleExports::TLSSocket::GetCertificate(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_CERTIFICATE, nullptr, - TLSSocketAsyncWork::ExecGetCertificate, - TLSSocketAsyncWork::GetCertificateCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_GET_CERTIFICATE, + nullptr, TLSSocketAsyncWork::ExecGetCertificate, TLSSocketAsyncWork::GetCertificateCallback); } napi_value TLSSocketModuleExports::TLSSocket::GetProtocol(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_PROTOCOL, nullptr, - TLSSocketAsyncWork::ExecGetProtocol, - TLSSocketAsyncWork::GetProtocolCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_GET_PROTOCOL, + nullptr, TLSSocketAsyncWork::ExecGetProtocol, TLSSocketAsyncWork::GetProtocolCallback); } napi_value TLSSocketModuleExports::TLSSocket::Connect(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_CONNECT, nullptr, TLSSocketAsyncWork::ExecConnect, TLSSocketAsyncWork::ConnectCallback); } napi_value TLSSocketModuleExports::TLSSocket::GetCipherSuites(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_CIPHER_SUITE, nullptr, - TLSSocketAsyncWork::ExecGetCipherSuites, - TLSSocketAsyncWork::GetCipherSuitesCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_GET_CIPHER_SUITE, + nullptr, TLSSocketAsyncWork::ExecGetCipherSuites, TLSSocketAsyncWork::GetCipherSuitesCallback); } napi_value TLSSocketModuleExports::TLSSocket::GetRemoteCertificate(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_REMOTE_CERTIFICATE, nullptr, - TLSSocketAsyncWork::ExecGetRemoteCertificate, - TLSSocketAsyncWork::GetRemoteCertificateCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, + FUNCTION_GET_REMOTE_CERTIFICATE, nullptr, TLSSocketAsyncWork::ExecGetRemoteCertificate, + TLSSocketAsyncWork::GetRemoteCertificateCallback); } napi_value TLSSocketModuleExports::TLSSocket::GetSignatureAlgorithms(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_SIGNATURE_ALGORITHMS, nullptr, TLSSocketAsyncWork::ExecGetSignatureAlgorithms, TLSSocketAsyncWork::GetSignatureAlgorithmsCallback); } napi_value TLSSocketModuleExports::TLSSocket::Send(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_SEND, nullptr, TLSSocketAsyncWork::ExecSend, - TLSSocketAsyncWork::SendCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_SEND, nullptr, + TLSSocketAsyncWork::ExecSend, TLSSocketAsyncWork::SendCallback); } napi_value TLSSocketModuleExports::TLSSocket::Close(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_CLOSE, nullptr, TLSSocketAsyncWork::ExecClose, - TLSSocketAsyncWork::CloseCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, + FUNCTION_CLOSE, nullptr, TLSSocketAsyncWork::ExecClose, + TLSSocketAsyncWork::CloseCallback); } napi_value TLSSocketModuleExports::TLSSocket::Bind(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_BIND, nullptr, TLSSocketAsyncWork::ExecBind, - TLSSocketAsyncWork::BindCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_BIND, nullptr, + TLSSocketAsyncWork::ExecBind, TLSSocketAsyncWork::BindCallback); } napi_value TLSSocketModuleExports::TLSSocket::GetState(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_STATE, nullptr, TLSSocketAsyncWork::ExecGetState, TLSSocketAsyncWork::GetStateCallback); } napi_value TLSSocketModuleExports::TLSSocket::GetRemoteAddress(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_REMOTE_ADDRESS, nullptr, - TLSSocketAsyncWork::ExecGetRemoteAddress, - TLSSocketAsyncWork::GetRemoteAddressCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, + FUNCTION_GET_REMOTE_ADDRESS, nullptr, TLSSocketAsyncWork::ExecGetRemoteAddress, + TLSSocketAsyncWork::GetRemoteAddressCallback); } napi_value TLSSocketModuleExports::TLSSocket::GetLocalAddress(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_LOCAL_ADDRESS, nullptr, - TLSSocketAsyncWork::ExecGetLocalAddress, - TLSSocketAsyncWork::GetLocalAddressCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_GET_LOCAL_ADDRESS, + nullptr, TLSSocketAsyncWork::ExecGetLocalAddress, TLSSocketAsyncWork::GetLocalAddressCallback); } napi_value TLSSocketModuleExports::TLSSocket::SetExtraOptions(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_BIND, nullptr, + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_BIND, nullptr, TLSSocketAsyncWork::ExecSetExtraOptions, TLSSocketAsyncWork::SetExtraOptionsCallback); } @@ -148,7 +143,7 @@ napi_value TLSSocketModuleExports::TLSSocket::Off(napi_env env, napi_callback_in napi_value TLSSocketModuleExports::TLSSocket::GetSocketFd(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_SOCKET_FD, nullptr, + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_GET_SOCKET_FD, nullptr, TLSSocketAsyncWork::ExecGetSocketFd, TLSSocketAsyncWork::GetSocketFdCallback); } @@ -190,7 +185,7 @@ void TLSSocketModuleExports::InitProtocol(napi_env env, napi_value exports) napi_value TLSSocketModuleExports::ConstructTLSSocketInstance(napi_env env, napi_callback_info info) { - napi_value result = ModuleTemplate::NewInstance(env, info, INTERFACE_TLS_SOCKET, Finalize); + napi_value result = ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_TLS_SOCKET, Finalize); if (result == nullptr) { return nullptr; } @@ -202,14 +197,14 @@ napi_value TLSSocketModuleExports::ConstructTLSSocketInstance(napi_env env, napi return result; } - EventManager *manager = nullptr; - auto napiRet = napi_unwrap(env, result, reinterpret_cast(&manager)); + std::shared_ptr *sharedManager = nullptr; + auto napiRet = napi_unwrap(env, result, reinterpret_cast(&sharedManager)); if (napiRet != napi_ok) { NETSTACK_LOGE("get event manager in napi_unwrap failed, napiRet is %{public}d", napiRet); return nullptr; } - auto context = new TLSInitContext(env, manager); + auto context = new TLSInitContext(env, *sharedManager); if (context == nullptr) { NETSTACK_LOGE("new TLSInitContext failed, no enough memory"); return nullptr; diff --git a/frameworks/js/napi/tls/src/tlssocketserver_exec.cpp b/frameworks/js/napi/tls/src/tlssocketserver_exec.cpp index c0e8f2cf6d9d8e48448cb0d9987f9397f8a1dbd0..2cc79f67c42d31dc6ba6aa1a4ad8e1b0afd3b52e 100644 --- a/frameworks/js/napi/tls/src/tlssocketserver_exec.cpp +++ b/frameworks/js/napi/tls/src/tlssocketserver_exec.cpp @@ -39,7 +39,7 @@ const std::string SYSTEM_INTERNAL_ERROR_MESSAGE = "system internal error"; } // namespace bool TLSSocketServerExec::ExecGetCertificate(TlsSocket::GetCertificateContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -64,7 +64,7 @@ bool TLSSocketServerExec::ExecGetCertificate(TlsSocket::GetCertificateContext *c bool TLSSocketServerExec::ExecListen(TlsSocket::TLSListenContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -89,7 +89,7 @@ bool TLSSocketServerExec::ExecListen(TlsSocket::TLSListenContext *context) bool TLSSocketServerExec::ExecGetCipherSuites(ServerGetCipherSuitesContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -115,7 +115,7 @@ bool TLSSocketServerExec::ExecGetCipherSuites(ServerGetCipherSuitesContext *cont bool TLSSocketServerExec::ExecGetRemoteCertificate(ServerGetRemoteCertificateContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -141,7 +141,7 @@ bool TLSSocketServerExec::ExecGetRemoteCertificate(ServerGetRemoteCertificateCon bool TLSSocketServerExec::ExecGetProtocol(TlsSocket::GetProtocolContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -166,7 +166,7 @@ bool TLSSocketServerExec::ExecGetProtocol(TlsSocket::GetProtocolContext *context bool TLSSocketServerExec::ExecGetSignatureAlgorithms(ServerGetSignatureAlgorithmsContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -192,7 +192,7 @@ bool TLSSocketServerExec::ExecGetSignatureAlgorithms(ServerGetSignatureAlgorithm bool TLSSocketServerExec::ExecSend(TLSServerSendContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -220,7 +220,7 @@ bool TLSSocketServerExec::ExecSend(TLSServerSendContext *context) bool TLSSocketServerExec::ExecClose(TLSServerCloseContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -244,7 +244,7 @@ bool TLSSocketServerExec::ExecClose(TLSServerCloseContext *context) bool TLSSocketServerExec::ExecStop(TlsSocket::TLSNapiContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -270,7 +270,7 @@ bool TLSSocketServerExec::ExecStop(TlsSocket::TLSNapiContext *context) bool TLSSocketServerExec::ExecGetRemoteAddress(ServerTLSGetRemoteAddressContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -300,7 +300,7 @@ bool TLSSocketServerExec::ExecGetLocalAddress(TLSServerGetLocalAddressContext *c NETSTACK_LOGE("context is nullptr"); return false; } - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); context->SetNeedThrowException(true); @@ -348,7 +348,7 @@ bool TLSSocketServerExec::ExecConnectionGetLocalAddress(TLSConnectionGetLocalAdd NETSTACK_LOGE("context is nullptr"); return false; } - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); context->SetNeedThrowException(true); @@ -376,7 +376,7 @@ bool TLSSocketServerExec::ExecConnectionGetLocalAddress(TLSConnectionGetLocalAdd bool TLSSocketServerExec::ExecGetState(TlsSocket::TLSGetStateContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); context->state_.SetIsClose(true); @@ -400,7 +400,7 @@ bool TLSSocketServerExec::ExecGetState(TlsSocket::TLSGetStateContext *context) bool TLSSocketServerExec::ExecSetExtraOptions(TlsSocket::TLSSetExtraOptionsContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; @@ -449,8 +449,8 @@ napi_value TLSSocketServerExec::GetCertificateCallback(TlsSocket::GetCertificate napi_value TLSSocketServerExec::ListenCallback(TlsSocket::TLSListenContext *context) { - context->Emit(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -512,15 +512,15 @@ napi_value TLSSocketServerExec::GetSignatureAlgorithmsCallback(ServerGetSignatur napi_value TLSSocketServerExec::SendCallback(TLSServerSendContext *context) { - context->Emit(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_LISTENING, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } napi_value TLSSocketServerExec::CloseCallback(TLSServerCloseContext *context) { - context->Emit(EVENT_CLOSE, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), - NapiUtils::GetUndefined(context->GetEnv()))); + context->EmitSharedManager(EVENT_CLOSE, std::make_pair(NapiUtils::GetUndefined(context->GetEnv()), + NapiUtils::GetUndefined(context->GetEnv()))); return NapiUtils::GetUndefined(context->GetEnv()); } @@ -559,7 +559,7 @@ napi_value TLSSocketServerExec::GetLocalAddressCallback(TLSServerGetLocalAddress if (NapiUtils::GetValueType(context->GetEnv(), obj) != napi_object) { return NapiUtils::GetUndefined(context->GetEnv()); } - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return obj; @@ -597,7 +597,7 @@ napi_value TLSSocketServerExec::SetExtraOptionsCallback(TlsSocket::TLSSetExtraOp bool TLSSocketServerExec::ExecConnectionSend(TLSServerSendContext *context) { - auto manager = context->GetManager(); + auto manager = context->GetSharedManager(); if (manager == nullptr) { NETSTACK_LOGE("manager is nullptr"); return false; diff --git a/frameworks/js/napi/tls/src/tlssocketserver_module.cpp b/frameworks/js/napi/tls/src/tlssocketserver_module.cpp index 4644b90882197fb739957fb6727697636183994b..2e1a868dbaa8ce093b3da87aac1a240f7ea28a53 100644 --- a/frameworks/js/napi/tls/src/tlssocketserver_module.cpp +++ b/frameworks/js/napi/tls/src/tlssocketserver_module.cpp @@ -44,37 +44,34 @@ static constexpr const char *PROTOCOL_TLSV12 = "TLSv12"; void Finalize(napi_env, void *data, void *) { NETSTACK_LOGI("tls socket server is finalized"); - auto manager = reinterpret_cast(data); - if (manager != nullptr) { - EventManager::SetInvalid(manager); - } + auto sharedManager = reinterpret_cast *>(data); + delete sharedManager; } } // namespace napi_value TLSSocketServerModuleExports::TLSSocketServer::GetCertificate(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_CERTIFICATE, nullptr, TLSSocketServerAsyncWork::ExecGetCertificate, TLSSocketServerAsyncWork::GetCertificateCallback); } napi_value TLSSocketServerModuleExports::TLSSocketServer::GetProtocol(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_PROTOCOL, nullptr, - TLSSocketServerAsyncWork::ExecGetProtocol, - TLSSocketServerAsyncWork::GetProtocolCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_GET_PROTOCOL, + nullptr, TLSSocketServerAsyncWork::ExecGetProtocol, TLSSocketServerAsyncWork::GetProtocolCallback); } napi_value TLSSocketServerModuleExports::TLSSocketServer::Listen(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_LISTEN, nullptr, + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_LISTEN, nullptr, TLSSocketServerAsyncWork::ExecListen, TLSSocketServerAsyncWork::ListenCallback); } napi_value TLSSocketServerModuleExports::TLSSocketConnection::Send(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_SEND, [](napi_env theEnv, napi_value thisVal, TLSServerSendContext *context) -> bool { context->clientId_ = NapiUtils::GetInt32Property(theEnv, thisVal, PROPERTY_CLIENT_ID); @@ -85,7 +82,7 @@ napi_value TLSSocketServerModuleExports::TLSSocketConnection::Send(napi_env env, napi_value TLSSocketServerModuleExports::TLSSocketConnection::Close(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_CLOSE, [](napi_env theEnv, napi_value thisVal, TLSServerCloseContext *context) -> bool { context->clientId_ = NapiUtils::GetInt32Property(theEnv, thisVal, PROPERTY_CLIENT_ID); @@ -96,7 +93,7 @@ napi_value TLSSocketServerModuleExports::TLSSocketConnection::Close(napi_env env napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetRemoteAddress(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_REMOTE_ADDRESS, [](napi_env theEnv, napi_value thisVal, ServerTLSGetRemoteAddressContext *context) -> bool { context->clientId_ = NapiUtils::GetInt32Property(theEnv, thisVal, PROPERTY_CLIENT_ID); @@ -107,7 +104,7 @@ napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetRemoteAddress(n napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetLocalAddress(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_LOCAL_ADDRESS, [](napi_env theEnv, napi_value thisVal, TLSServerGetLocalAddressContext *context) -> bool { context->clientId_ = NapiUtils::GetInt32Property(theEnv, thisVal, PROPERTY_CLIENT_ID); @@ -120,7 +117,7 @@ napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetLocalAddress(na napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetRemoteCertificate(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_REMOTE_CERTIFICATE, [](napi_env theEnv, napi_value thisVal, ServerGetRemoteCertificateContext *context) -> bool { context->clientId_ = NapiUtils::GetInt32Property(theEnv, thisVal, PROPERTY_CLIENT_ID); @@ -131,7 +128,7 @@ napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetRemoteCertifica napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetCipherSuites(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_CIPHER_SUITE, [](napi_env theEnv, napi_value thisVal, ServerGetCipherSuitesContext *context) -> bool { context->clientId_ = NapiUtils::GetInt32Property(theEnv, thisVal, PROPERTY_CLIENT_ID); @@ -143,7 +140,7 @@ napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetCipherSuites(na napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetSignatureAlgorithms(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_SIGNATURE_ALGORITHMS, [](napi_env theEnv, napi_value thisVal, ServerGetSignatureAlgorithmsContext *context) -> bool { context->clientId_ = NapiUtils::GetInt32Property(theEnv, thisVal, PROPERTY_CLIENT_ID); @@ -164,28 +161,27 @@ napi_value TLSSocketServerModuleExports::TLSSocketConnection::Off(napi_env env, napi_value TLSSocketServerModuleExports::TLSSocketConnection::GetCertificate(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_CERTIFICATE, nullptr, TLSSocketServerAsyncWork::ExecGetCertificate, TLSSocketServerAsyncWork::GetCertificateCallback); } napi_value TLSSocketServerModuleExports::TLSSocketServer::GetState(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface(env, info, FUNCTION_GET_STATE, nullptr, - TLSSocketServerAsyncWork::ExecGetState, - TLSSocketServerAsyncWork::GetStateCallback); + return ModuleTemplate::InterfaceWithSharedManager(env, info, FUNCTION_GET_STATE, + nullptr, TLSSocketServerAsyncWork::ExecGetState, TLSSocketServerAsyncWork::GetStateCallback); } napi_value TLSSocketServerModuleExports::TLSSocketServer::GetLocalAddress(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_GET_LOCAL_ADDRESS, nullptr, TLSSocketServerAsyncWork::ExecGetLocalAddress, TLSSocketServerAsyncWork::GetLocalAddressCallback); } napi_value TLSSocketServerModuleExports::TLSSocketServer::SetExtraOptions(napi_env env, napi_callback_info info) { - return ModuleTemplate::Interface( + return ModuleTemplate::InterfaceWithSharedManager( env, info, FUNCTION_SET_EXTRA_OPTIONS, nullptr, TLSSocketServerAsyncWork::ExecSetExtraOptions, TLSSocketServerAsyncWork::SetExtraOptionsCallback); } @@ -248,7 +244,7 @@ void TlsSocketServer::TLSSocketServerModuleExports::DefineTLSSocketConnectionCla napi_value TLSSocketServerModuleExports::ConstructTLSSocketServerInstance(napi_env env, napi_callback_info info) { - return ModuleTemplate::NewInstance(env, info, INTERFACE_TLS_SOCKET_SERVER, Finalize); + return ModuleTemplate::NewInstanceWithSharedManager(env, info, INTERFACE_TLS_SOCKET_SERVER, Finalize); } void TLSSocketServerModuleExports::InitTLSSocketServerProperties(napi_env env, napi_value exports) diff --git a/frameworks/js/napi/websocket/async_context/include/close_context.h b/frameworks/js/napi/websocket/async_context/include/close_context.h index b51128c2fcab0db2304c45a69c5501b18cb216d2..8e6fbcc4c7222f9a868626c1f94733f9abb3fe7e 100644 --- a/frameworks/js/napi/websocket/async_context/include/close_context.h +++ b/frameworks/js/napi/websocket/async_context/include/close_context.h @@ -28,9 +28,7 @@ public: CloseContext() = delete; - CloseContext(napi_env env, EventManager *manager); - - CloseContext(napi_env env, const std::shared_ptr &sharedManager); + CloseContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/websocket/async_context/include/connect_context.h b/frameworks/js/napi/websocket/async_context/include/connect_context.h index cf6a835195f859d338f8669f19b3a1c5f4a213ef..74e457b496210c4af889f8ad7207e86c8b784c6c 100755 --- a/frameworks/js/napi/websocket/async_context/include/connect_context.h +++ b/frameworks/js/napi/websocket/async_context/include/connect_context.h @@ -33,9 +33,7 @@ public: ConnectContext() = delete; - ConnectContext(napi_env env, EventManager *manager); - - ConnectContext(napi_env env, const std::shared_ptr &sharedManager); + ConnectContext(napi_env env, const std::shared_ptr &manager); ~ConnectContext() override; diff --git a/frameworks/js/napi/websocket/async_context/include/send_context.h b/frameworks/js/napi/websocket/async_context/include/send_context.h index 47986149f733483e767bab56f242a0fe3427ccfd..a4647de81697cff9679f26ce1f1c68bd2ebdc6a6 100644 --- a/frameworks/js/napi/websocket/async_context/include/send_context.h +++ b/frameworks/js/napi/websocket/async_context/include/send_context.h @@ -29,9 +29,7 @@ public: SendContext() = delete; - SendContext(napi_env env, EventManager *manager); - - SendContext(napi_env env, const std::shared_ptr &sharedManager); + SendContext(napi_env env, const std::shared_ptr &manager); void ParseParams(napi_value *params, size_t paramsCount) override; diff --git a/frameworks/js/napi/websocket/async_context/src/close_context.cpp b/frameworks/js/napi/websocket/async_context/src/close_context.cpp index 7b8bf781001ecbb5091f5d9e38092545ed93b9be..ccb527866aa7f12e92ead7cbdff60d4e64efa5e5 100644 --- a/frameworks/js/napi/websocket/async_context/src/close_context.cpp +++ b/frameworks/js/napi/websocket/async_context/src/close_context.cpp @@ -21,16 +21,11 @@ #include "napi_utils.h" namespace OHOS::NetStack::Websocket { -CloseContext::CloseContext(napi_env env, EventManager *manager) +CloseContext::CloseContext(napi_env env, const std::shared_ptr &manager) : BaseContext(env, manager), code(CLOSE_REASON_NORMAL_CLOSE), reason("CLOSE_NORMAL") { } -CloseContext::CloseContext(napi_env env, const std::shared_ptr &sharedManager) - : BaseContext(env, sharedManager), code(CLOSE_REASON_NORMAL_CLOSE), reason("CLOSE_NORMAL") -{ -} - void CloseContext::ParseParams(napi_value *params, size_t paramsCount) { if (!CheckParamsType(params, paramsCount)) { diff --git a/frameworks/js/napi/websocket/async_context/src/connect_context.cpp b/frameworks/js/napi/websocket/async_context/src/connect_context.cpp index e278922da117a355b059d166a84441de04cfecb1..c52b143b4b2815680a2bb5481965abf523640f32 100644 --- a/frameworks/js/napi/websocket/async_context/src/connect_context.cpp +++ b/frameworks/js/napi/websocket/async_context/src/connect_context.cpp @@ -22,9 +22,8 @@ #include namespace OHOS::NetStack::Websocket { -ConnectContext::ConnectContext(napi_env env, EventManager *manager) : BaseContext(env, manager) {} -ConnectContext::ConnectContext(napi_env env, const std::shared_ptr &sharedManager) - : BaseContext(env, sharedManager) +ConnectContext::ConnectContext(napi_env env, const std::shared_ptr &manager) + : BaseContext(env, manager) { } 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 ac70b05669c1c7c731747b034b66aeec07eddffa..40770c2707460bafd142127cc614bbee778cf574 100644 --- a/frameworks/js/napi/websocket/async_context/src/send_context.cpp +++ b/frameworks/js/napi/websocket/async_context/src/send_context.cpp @@ -23,16 +23,11 @@ static constexpr size_t MAX_LIMIT = 5 * 1024 * 1024; namespace OHOS::NetStack::Websocket { -SendContext::SendContext(napi_env env, EventManager *manager) +SendContext::SendContext(napi_env env, const std::shared_ptr &manager) : BaseContext(env, manager), data(nullptr), length(0), protocol(LWS_WRITE_TEXT) { } -SendContext::SendContext(napi_env env, const std::shared_ptr &sharedManager) - : BaseContext(env, sharedManager), data(nullptr), length(0), protocol(LWS_WRITE_TEXT) -{ -} - bool SendContext::HandleParseString(napi_value *params) { NETSTACK_LOGI("SendContext data is String"); diff --git a/interfaces/innerkits/tls_socket/include/tls_socket_server.h b/interfaces/innerkits/tls_socket/include/tls_socket_server.h index 7857495f87c010e8a597fc1c4e8b80088e488c39..ae5c232b4c4bb6644d2ab5a9914ae9624ce63654 100644 --- a/interfaces/innerkits/tls_socket/include/tls_socket_server.h +++ b/interfaces/innerkits/tls_socket/include/tls_socket_server.h @@ -514,9 +514,9 @@ public: std::shared_ptr GetConnectionByClientID(int clientid); int GetConnectionClientCount(); - std::shared_ptr GetConnectionByClientEventManager(const EventManager *eventManager); - void CloseConnectionByEventManager(EventManager *eventManager); - void DeleteConnectionByEventManager(EventManager *eventManager); + std::shared_ptr GetConnectionByClientEventManager(const std::shared_ptr &eventManager); + void CloseConnectionByEventManager(const std::shared_ptr &eventManager); + void DeleteConnectionByEventManager(const std::shared_ptr &eventManager); void SetTlsConnectionSecureOptions(const TlsSocket::TLSConnectOptions &tlsListenOptions, int clientID, int connectFD, std::shared_ptr &connection); }; diff --git a/test/BUILD.gn b/test/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..6fb8b0ccf4301c3fec6b057c4b6fc20dec3ce47a --- /dev/null +++ b/test/BUILD.gn @@ -0,0 +1,36 @@ +# Copyright (c) 2025 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +group("netstack_test") { + testonly = true + deps = [ + "fuzztest/http_fuzzer:fuzztest", + "fuzztest/netssl:fuzztest", + "fuzztest/netsslinner_fuzzer:fuzztest", + "fuzztest/socket:fuzztest", + "fuzztest/websocket:fuzztest", + "fuzztest/websocketcapi_fuzzer:fuzztest", + "fuzztest/websocketinnerapi_fuzzer:fuzztest", + "unittest/http:unittest", + "unittest/http/cache:unittest", + "unittest/http_client:unittest", + "unittest/netssl:unittest", + "unittest/socket:unittest", + "unittest/tlssocket:unittest", + "unittest/utils/common_utils:unittest", + "unittest/utils/profiler_utils:unittest", + "unittest/websocket:unittest", + "unittest/websocket_capi_unittest:unittest", + "unittest/websocket_inner_unittest:unittest", + ] +} diff --git a/test/fuzztest/netssl/fuzztest/netsslexec_fuzzer/net_ssl_exec_fuzzer.cpp b/test/fuzztest/netssl/fuzztest/netsslexec_fuzzer/net_ssl_exec_fuzzer.cpp index 96b715fd59c5e6ba01bc263f12538c3af0ab8249..11419ea44a673c9d91f51830ebf9701b35917ffd 100644 --- a/test/fuzztest/netssl/fuzztest/netsslexec_fuzzer/net_ssl_exec_fuzzer.cpp +++ b/test/fuzztest/netssl/fuzztest/netsslexec_fuzzer/net_ssl_exec_fuzzer.cpp @@ -56,7 +56,8 @@ void ExecVerifyFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - CertContext context(env, nullptr); + std::shared_ptr manager = nullptr; + CertContext context(env, manager); SslExec::ExecVerify(&context); } diff --git a/test/fuzztest/socket/fuzztest/socketexec_fuzzer/socket_exec_fuzzer.cpp b/test/fuzztest/socket/fuzztest/socketexec_fuzzer/socket_exec_fuzzer.cpp index c9e772d9c5f979810f66246dee1ef1147319ee0c..33c87fc61ba08a0ee8abc73a78e2fce7c7f48f1b 100644 --- a/test/fuzztest/socket/fuzztest/socketexec_fuzzer/socket_exec_fuzzer.cpp +++ b/test/fuzztest/socket/fuzztest/socketexec_fuzzer/socket_exec_fuzzer.cpp @@ -87,8 +87,8 @@ void ExecUdpBindFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - BindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + BindContext context(env, eventManager); SocketExec::ExecUdpBind(&context); } @@ -100,8 +100,8 @@ void ExecTcpBindFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - BindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + BindContext context(env, eventManager); SocketExec::ExecTcpBind(&context); } @@ -113,8 +113,8 @@ void ExecUdpSendFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - UdpSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + UdpSendContext context(env, eventManager); SocketExec::ExecUdpSend(&context); } @@ -126,8 +126,8 @@ void ExecTcpSendFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpSendContext context(env, eventManager); SocketExec::ExecTcpSend(&context); } @@ -139,8 +139,8 @@ void ExecConnectFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); SocketExec::ExecConnect(&context); } @@ -152,8 +152,8 @@ void ExecCloseFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - CloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + CloseContext context(env, eventManager); SocketExec::ExecClose(&context); } @@ -165,8 +165,8 @@ void ExecGetStateFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - GetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + GetStateContext context(env, eventManager); SocketExec::ExecGetState(&context); } @@ -178,8 +178,8 @@ void ExecGetRemoteAddressFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - GetRemoteAddressContext context(env, &eventManager); + auto eventManager = std::make_shared(); + GetRemoteAddressContext context(env, eventManager); SocketExec::ExecGetRemoteAddress(&context); } @@ -191,8 +191,8 @@ void ExecTcpSetExtraOptionsFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpSetExtraOptionsContext context(env, eventManager); SocketExec::ExecTcpSetExtraOptions(&context); } @@ -204,8 +204,8 @@ void ExecUdpSetExtraOptionsFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - UdpSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + UdpSetExtraOptionsContext context(env, eventManager); SocketExec::ExecUdpSetExtraOptions(&context); } @@ -217,8 +217,8 @@ void ExecTcpServerListenFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpServerListenContext context(env, eventManager); SocketExec::ExecTcpServerListen(&context); } @@ -230,8 +230,8 @@ void ExecTcpServerSetExtraOptionsFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpServerSetExtraOptionsContext context(env, eventManager); SocketExec::ExecTcpServerSetExtraOptions(&context); } @@ -243,8 +243,8 @@ void ExecTcpServerGetStateFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpServerGetStateContext context(env, eventManager); SocketExec::ExecTcpServerGetState(&context); } @@ -256,8 +256,8 @@ void ExecTcpConnectionSendFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpServerSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpServerSendContext context(env, eventManager); SocketExec::ExecTcpConnectionSend(&context); } @@ -269,8 +269,8 @@ void ExecTcpConnectionGetRemoteAddressFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpServerGetRemoteAddressContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpServerGetRemoteAddressContext context(env, eventManager); SocketExec::ExecTcpConnectionGetRemoteAddress(&context); } @@ -282,8 +282,8 @@ void ExecTcpConnectionCloseFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - TcpServerCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + TcpServerCloseContext context(env, eventManager); SocketExec::ExecTcpConnectionClose(&context); } @@ -295,8 +295,8 @@ void ExecUdpAddMembershipFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); SocketExec::ExecUdpAddMembership(&context); } @@ -308,8 +308,8 @@ void ExecUdpDropMembershipFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); SocketExec::ExecUdpDropMembership(&context); } @@ -321,8 +321,8 @@ void ExecSetMulticastTTLFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - MulticastSetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetTTLContext context(env, eventManager); SocketExec::ExecSetMulticastTTL(&context); } @@ -334,8 +334,8 @@ void ExecGetMulticastTTLFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - MulticastGetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetTTLContext context(env, eventManager); SocketExec::ExecGetMulticastTTL(&context); } @@ -347,8 +347,8 @@ void ExecSetLoopbackModeFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - MulticastSetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetLoopbackContext context(env, eventManager); SocketExec::ExecSetLoopbackMode(&context); } @@ -360,8 +360,8 @@ void ExecGetLoopbackModeFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - MulticastGetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetLoopbackContext context(env, eventManager); SocketExec::ExecGetLoopbackMode(&context); } @@ -383,8 +383,8 @@ void ExecLocalSocketBindFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketBindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketBindContext context(env, eventManager); LocalSocketExec::ExecLocalSocketBind(&context); } @@ -396,8 +396,8 @@ void ExecLocalSocketConnectFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketConnectContext context(env, eventManager); LocalSocketExec::ExecLocalSocketConnect(&context); } @@ -409,8 +409,8 @@ void ExecLocalSocketSendFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSendContext context(env, eventManager); LocalSocketExec::ExecLocalSocketSend(&context); } @@ -422,8 +422,8 @@ void ExecLocalSocketCloseFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketCloseContext context(env, eventManager); LocalSocketExec::ExecLocalSocketClose(&context); } @@ -435,8 +435,8 @@ void ExecLocalSocketGetStateFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetStateContext context(env, eventManager); LocalSocketExec::ExecLocalSocketGetState(&context); } @@ -448,8 +448,8 @@ void ExecLocalSocketGetSocketFdFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketGetSocketFdContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetSocketFdContext context(env, eventManager); LocalSocketExec::ExecLocalSocketGetSocketFd(&context); } @@ -461,8 +461,8 @@ void ExecLocalSocketSetExtraOptionsFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSetExtraOptionsContext context(env, eventManager); LocalSocketExec::ExecLocalSocketSetExtraOptions(&context); } @@ -474,8 +474,8 @@ void ExecLocalSocketGetExtraOptionsFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetExtraOptionsContext context(env, eventManager); LocalSocketExec::ExecLocalSocketGetExtraOptions(&context); } @@ -487,8 +487,8 @@ void ExecLocalSocketServerListenFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerListenContext context(env, eventManager); LocalSocketExec::ExecLocalSocketServerListen(&context); } @@ -500,8 +500,8 @@ void ExecLocalSocketServerGetStateFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetStateContext context(env, eventManager); LocalSocketExec::ExecLocalSocketServerGetState(&context); } @@ -513,8 +513,8 @@ void ExecLocalSocketServerSetExtraOptionsFuzzTest(const uint8_t *data, size_t si } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSetExtraOptionsContext context(env, eventManager); LocalSocketExec::ExecLocalSocketServerSetExtraOptions(&context); } @@ -526,8 +526,8 @@ void ExecLocalSocketServerGetExtraOptionsFuzzTest(const uint8_t *data, size_t si } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketServerGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetExtraOptionsContext context(env, eventManager); LocalSocketExec::ExecLocalSocketServerGetExtraOptions(&context); } @@ -539,8 +539,8 @@ void ExecLocalSocketConnectionSendFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketServerSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSendContext context(env, eventManager); LocalSocketExec::ExecLocalSocketConnectionSend(&context); } @@ -552,8 +552,8 @@ void ExecLocalSocketConnectionCloseFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager eventManager; - LocalSocketServerCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerCloseContext context(env, eventManager); LocalSocketExec::ExecLocalSocketConnectionClose(&context); } diff --git a/test/fuzztest/socket/fuzztest/tlssocket_fuzzer/tls_socket_fuzzer.cpp b/test/fuzztest/socket/fuzztest/tlssocket_fuzzer/tls_socket_fuzzer.cpp index d6d5411c7bd464a29ef2e63712eec1ec72a83f98..5093ec3fe0a04dfa4c860caadc596848aed88502 100644 --- a/test/fuzztest/socket/fuzztest/tlssocket_fuzzer/tls_socket_fuzzer.cpp +++ b/test/fuzztest/socket/fuzztest/tlssocket_fuzzer/tls_socket_fuzzer.cpp @@ -65,28 +65,28 @@ void BindFuzzTest(const uint8_t *data, size_t size) g_baseFuzzSize = size; g_baseFuzzPos = 0; - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); Socket::NetAddress netAddress; std::string str = GetStringFromData(STR_LEN); netAddress.SetAddress(str); netAddress.SetFamilyByJsValue(GetData()); netAddress.SetFamilyBySaFamily(GetData()); netAddress.SetPort(GetData()); - tlsSocket.Close([](int32_t errorNumber) {}); - tlsSocket.GetRemoteAddress([](int32_t errorNumber, const Socket::NetAddress &address) {}); - tlsSocket.GetCertificate([](int32_t errorNumber, const X509CertRawData &cert) {}); - tlsSocket.GetRemoteCertificate([](int32_t errorNumber, const X509CertRawData &cert) {}); - tlsSocket.GetProtocol([](int32_t errorNumber, const std::string &protocol) {}); - tlsSocket.GetCipherSuite([](int32_t errorNumber, const std::vector &suite) {}); - tlsSocket.GetSignatureAlgorithms([](int32_t errorNumber, const std::vector &algorithms) {}); - tlsSocket.OnMessage([](const std::string &data, const Socket::SocketRemoteInfo &remoteInfo) {}); - tlsSocket.OnConnect([]() {}); - tlsSocket.OnClose([]() {}); - tlsSocket.OnError([](int32_t errorNumber, const std::string &errorString) {}); - tlsSocket.OffMessage(); - tlsSocket.OffConnect(); - tlsSocket.OffClose(); - tlsSocket.OffError(); + tlsSocket->Close([](int32_t errorNumber) {}); + tlsSocket->GetRemoteAddress([](int32_t errorNumber, const Socket::NetAddress &address) {}); + tlsSocket->GetCertificate([](int32_t errorNumber, const X509CertRawData &cert) {}); + tlsSocket->GetRemoteCertificate([](int32_t errorNumber, const X509CertRawData &cert) {}); + tlsSocket->GetProtocol([](int32_t errorNumber, const std::string &protocol) {}); + tlsSocket->GetCipherSuite([](int32_t errorNumber, const std::vector &suite) {}); + tlsSocket->GetSignatureAlgorithms([](int32_t errorNumber, const std::vector &algorithms) {}); + tlsSocket->OnMessage([](const std::string &data, const Socket::SocketRemoteInfo &remoteInfo) {}); + tlsSocket->OnConnect([]() {}); + tlsSocket->OnClose([]() {}); + tlsSocket->OnError([](int32_t errorNumber, const std::string &errorString) {}); + tlsSocket->OffMessage(); + tlsSocket->OffConnect(); + tlsSocket->OffClose(); + tlsSocket->OffError(); } void ConnectFuzzTest(const uint8_t *data, size_t size) @@ -100,7 +100,7 @@ void ConnectFuzzTest(const uint8_t *data, size_t size) g_baseFuzzSize = size; g_baseFuzzPos = 0; - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); Socket::NetAddress netAddress; std::string str = GetStringFromData(STR_LEN); netAddress.SetAddress(str); @@ -114,7 +114,7 @@ void ConnectFuzzTest(const uint8_t *data, size_t size) }); std::vector alpnProtocols(STR_LEN, str); options.SetAlpnProtocols(alpnProtocols); - tlsSocket.Connect(options, [](bool ok) { NETSTACK_LOGD("Calback received"); }); + tlsSocket->Connect(options, [](bool ok) { NETSTACK_LOGD("Calback received"); }); } void SendFuzzTest(const uint8_t *data, size_t size) @@ -125,12 +125,12 @@ void SendFuzzTest(const uint8_t *data, size_t size) g_baseFuzzData = data; g_baseFuzzSize = size; g_baseFuzzPos = 0; - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); Socket::TCPSendOptions options; std::string str = GetStringFromData(STR_LEN); options.SetData(str); options.SetEncoding(str); - tlsSocket.Send(options, [](bool ok) { NETSTACK_LOGD("Calback received"); }); + tlsSocket->Send(options, [](bool ok) { NETSTACK_LOGD("Calback received"); }); } void SetExtraOptionsFuzzTest(const uint8_t *data, size_t size) @@ -138,12 +138,12 @@ void SetExtraOptionsFuzzTest(const uint8_t *data, size_t size) if ((data == nullptr) || (size == 0)) { return; } - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); Socket::TCPExtraOptions options; options.SetKeepAlive(*(reinterpret_cast(data))); options.SetOOBInline(*(reinterpret_cast(data))); options.SetTCPNoDelay(*(reinterpret_cast(data))); - tlsSocket.SetExtraOptions(options, [](bool ok) { NETSTACK_LOGD("Calback received"); }); + tlsSocket->SetExtraOptions(options, [](bool ok) { NETSTACK_LOGD("Calback received"); }); } void SetCaChainFuzzTest(const uint8_t *data, size_t size) diff --git a/test/fuzztest/websocket/fuzztest/websocketexec_fuzzer/websocket_exec_fuzzer.cpp b/test/fuzztest/websocket/fuzztest/websocketexec_fuzzer/websocket_exec_fuzzer.cpp index 93678df79b8af410d95b4006e119edb180fb96bf..0e556600cf5b3987c6b2fbe4d67d0aa7d533d1d2 100644 --- a/test/fuzztest/websocket/fuzztest/websocketexec_fuzzer/websocket_exec_fuzzer.cpp +++ b/test/fuzztest/websocket/fuzztest/websocketexec_fuzzer/websocket_exec_fuzzer.cpp @@ -73,7 +73,8 @@ void ExecConnectFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - ConnectContext context(env, nullptr); + std::shared_ptr eventManager = nullptr; + ConnectContext context(env, eventManager); WebSocketExec::ExecConnect(&context); } @@ -97,7 +98,8 @@ void ExecCloseFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - CloseContext context(env, nullptr); + std::shared_ptr eventManager = nullptr; + CloseContext context(env, eventManager); WebSocketExec::ExecClose(&context); } @@ -109,7 +111,7 @@ void SetWebsocketProxyTypeFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager *manager(GetData()); + auto manager = std::make_shared(); ConnectContext context(env, manager); WebsocketProxyType proxyType(GetData()); context.SetWebsocketProxyType(proxyType); @@ -122,7 +124,7 @@ void SetSpecifiedWebsocketProxyFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager *manager(GetData()); + auto manager = std::make_shared(); ConnectContext context(env, manager); std::string str = GetStringFromData(STR_LEN); context.SetSpecifiedWebsocketProxy(str, size, str); @@ -135,7 +137,7 @@ void SetWebsocketProtocolFuzzTest(const uint8_t *data, size_t size) } SetGlobalFuzzData(data, size); napi_env env(GetData()); - EventManager *manager(GetData()); + auto manager = std::make_shared(); ConnectContext context(env, manager); std::string str = GetStringFromData(STR_LEN); context.SetProtocol(str); diff --git a/test/unittest/http/HttpExecTest.cpp b/test/unittest/http/HttpExecTest.cpp index ad9bf3c686e2071ad5413a63c4383fe3aacf82c7..897cc090a97a712d7d38e474d08c192635ab9444 100755 --- a/test/unittest/http/HttpExecTest.cpp +++ b/test/unittest/http/HttpExecTest.cpp @@ -52,8 +52,8 @@ HWTEST_F(HttpExecTest, SetOption001, TestSize.Level1) auto handle = curl_easy_init(); napi_env env = nullptr; - EventManager manager; - OHOS::NetStack::Http::RequestContext context(env, &manager); + auto manager = std::make_shared(); + OHOS::NetStack::Http::RequestContext context(env, manager); EXPECT_TRUE(HttpExec::SetOption(handle, &context, context.GetCurlHeaderList())); } @@ -63,8 +63,8 @@ HWTEST_F(HttpExecTest, SetServerSSLCertOption001, TestSize.Level1) auto handle = curl_easy_init(); napi_env env = nullptr; - EventManager manager; - OHOS::NetStack::Http::RequestContext context(env, &manager); + auto manager = std::make_shared(); + OHOS::NetStack::Http::RequestContext context(env, manager); EXPECT_TRUE(HttpExec::SetServerSSLCertOption(handle, &context)); } diff --git a/test/unittest/http_client/HttpClientTaskTest.cpp b/test/unittest/http_client/HttpClientTaskTest.cpp index 3d29e940c457814f4598608c02890ee7f91c4f58..cb4771b52c22b4fe1f0668a7e61521ffea28d41b 100644 --- a/test/unittest/http_client/HttpClientTaskTest.cpp +++ b/test/unittest/http_client/HttpClientTaskTest.cpp @@ -860,7 +860,7 @@ HWTEST_F(HttpClientTaskTest, ProcessCookieTest001, TestSize.Level1) while (task->GetStatus() != TaskStatus::IDLE) { std::this_thread::sleep_for(std::chrono::milliseconds(5)); } - EXPECT_EQ(task->GetResponse().GetResponseCode(), ResponseCode::NONE); + EXPECT_EQ(task->GetResponse().GetResponseCode(), ResponseCode::OK); } HWTEST_F(HttpClientTaskTest, ProcessCookieTest002, TestSize.Level1) diff --git a/test/unittest/netssl/NetsslTest.cpp b/test/unittest/netssl/NetsslTest.cpp index 67a5ad9eba1c9b7ce43118a59a412bafe1f1ba44..773e020e8b0868144b61803a121985ef715a86f2 100644 --- a/test/unittest/netssl/NetsslTest.cpp +++ b/test/unittest/netssl/NetsslTest.cpp @@ -38,13 +38,15 @@ public: namespace { using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Ssl; constexpr const uint32_t CERT_BlOB_TO_X509_ERROR = 2305069; HWTEST_F(NetsslTest, CertVerifyTest001, TestSize.Level1) { napi_env env = nullptr; - CertContext context(env, nullptr); + std::shared_ptr manager = nullptr; + CertContext context(env, manager); bool ret = SslExec::ExecVerify(&context); EXPECT_EQ(ret, false); diff --git a/test/unittest/socket/SocketTest.cpp b/test/unittest/socket/SocketTest.cpp index cc4415a3a0511a148b3e9c6f2817f0b75e77060b..289e6c9c06bcfad0458d5dddf3f78dcead2a0cd8 100644 --- a/test/unittest/socket/SocketTest.cpp +++ b/test/unittest/socket/SocketTest.cpp @@ -50,14 +50,15 @@ public: namespace { using namespace std; using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Socket; using namespace OHOS::NetStack::Socks5; HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpAddMembership(&context); EXPECT_EQ(ret, false); } @@ -65,8 +66,8 @@ HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpDropMembership(&context); EXPECT_EQ(ret, false); } @@ -74,8 +75,8 @@ HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetTTLContext context(env, eventManager); bool ret = SocketExec::ExecSetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -83,8 +84,8 @@ HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetTTLContext context(env, eventManager); bool ret = SocketExec::ExecGetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -92,8 +93,8 @@ HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecSetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -101,8 +102,8 @@ HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecGetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -110,8 +111,8 @@ HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketBindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketBindContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketBind(&context); EXPECT_EQ(ret, false); } @@ -119,8 +120,8 @@ HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketConnectContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnect(&context); EXPECT_EQ(ret, false); } @@ -128,8 +129,8 @@ HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSend(&context); EXPECT_EQ(ret, false); } @@ -137,8 +138,8 @@ HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketClose(&context); EXPECT_EQ(ret, false); } @@ -146,8 +147,8 @@ HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetState(&context); EXPECT_EQ(ret, true); } @@ -155,8 +156,8 @@ HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetSocketFdContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetSocketFdContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetSocketFd(&context); EXPECT_EQ(ret, true); } @@ -164,8 +165,8 @@ HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSetExtraOptions(&context); EXPECT_EQ(ret, true); } @@ -173,8 +174,8 @@ HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -182,8 +183,8 @@ HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerListenContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerListen(&context); EXPECT_EQ(ret, false); } @@ -191,8 +192,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetState(&context); EXPECT_EQ(ret, true); } @@ -200,8 +201,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerSetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -209,8 +210,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -218,8 +219,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionSend(&context); EXPECT_EQ(ret, false); } @@ -227,8 +228,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionClose(&context); EXPECT_EQ(ret, false); } @@ -237,8 +238,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest006, TestSize.Level1) HWTEST_F(SocketTest, Socks5SocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); bool ret = SocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -251,8 +252,8 @@ HWTEST_F(SocketTest, Socks5SocketTest001, TestSize.Level1) HWTEST_F(SocketTest, Socks5SocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - UdpSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + UdpSendContext context(env, eventManager); context.parseOK_ = false; EXPECT_FALSE(SocketExec::ExecUdpSend(&context)); @@ -260,11 +261,11 @@ HWTEST_F(SocketTest, Socks5SocketTest002, TestSize.Level1) EXPECT_FALSE(SocketExec::ExecUdpSend(&context)); int data = 1; - eventManager.data_ = &data; + eventManager->data_ = &data; shared_ptr socks5Udp = make_shared(); socks5Udp->options_ = make_shared(); socks5Udp->SetSocks5Instance(socks5Udp); - eventManager.proxyData_ = socks5Udp; + eventManager->proxyData_ = socks5Udp; context.proxyOptions = make_shared(); context.proxyOptions->type_ = ProxyType::NONE; EXPECT_FALSE(SocketExec::ExecUdpSend(&context)); diff --git a/test/unittest/sockettest/WebSocketCallbackTest.cpp b/test/unittest/sockettest/WebSocketCallbackTest.cpp index a74821908aac73274fc72c664700210ca308bc2a..eff148bff27a3a443f1b615ac083629445fa8b7c 100644 --- a/test/unittest/sockettest/WebSocketCallbackTest.cpp +++ b/test/unittest/sockettest/WebSocketCallbackTest.cpp @@ -41,13 +41,14 @@ public: namespace { using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Socket; HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpAddMembership(&context); EXPECT_EQ(ret, false); } @@ -55,8 +56,8 @@ HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpDropMembership(&context); EXPECT_EQ(ret, false); } @@ -64,8 +65,8 @@ HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetTTLContext context(env, eventManager); bool ret = SocketExec::ExecSetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -73,8 +74,8 @@ HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetTTLContext context(env, eventManager); bool ret = SocketExec::ExecGetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -82,8 +83,8 @@ HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecSetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -91,8 +92,8 @@ HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecGetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -100,8 +101,8 @@ HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketBindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketBindContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketBind(&context); EXPECT_EQ(ret, false); } @@ -109,8 +110,8 @@ HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketConnectContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnect(&context); EXPECT_EQ(ret, false); } @@ -118,8 +119,8 @@ HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSend(&context); EXPECT_EQ(ret, false); } @@ -127,8 +128,8 @@ HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketClose(&context); EXPECT_EQ(ret, false); } @@ -136,8 +137,8 @@ HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetState(&context); EXPECT_EQ(ret, true); } @@ -145,8 +146,8 @@ HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetSocketFdContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetSocketFdContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetSocketFd(&context); EXPECT_EQ(ret, true); } @@ -154,8 +155,8 @@ HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSetExtraOptions(&context); EXPECT_EQ(ret, true); } @@ -163,8 +164,8 @@ HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -172,8 +173,8 @@ HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerListenContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerListen(&context); EXPECT_EQ(ret, false); } @@ -181,8 +182,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetState(&context); EXPECT_EQ(ret, true); } @@ -190,8 +191,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerSetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -199,8 +200,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetExtraOptions(&context); EXPECT_EQ(ret, false); } diff --git a/test/unittest/sockettest/WebSocketTest.cpp b/test/unittest/sockettest/WebSocketTest.cpp index a3b99d2c1dcda9f06a1893111f6825ae3dfc3a9f..d7cd7a6cad644b04d315686537bde53ac2b9d138 100644 --- a/test/unittest/sockettest/WebSocketTest.cpp +++ b/test/unittest/sockettest/WebSocketTest.cpp @@ -43,8 +43,8 @@ using namespace OHOS::NetStack::Websocket; HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); } @@ -52,8 +52,8 @@ HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - SendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + SendContext context(env, eventManager); bool ret = WebSocketExec::ExecSend(&context); EXPECT_EQ(ret, false); } @@ -61,8 +61,8 @@ HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - CloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + CloseContext context(env, eventManager); bool ret = WebSocketExec::ExecClose(&context); EXPECT_EQ(ret, false); } @@ -76,8 +76,8 @@ HWTEST_F(WebSocketTest, WebSocketTest004, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = "/etc/ssl/certs/test_ca.crt"; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -86,8 +86,8 @@ HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = ""; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -96,8 +96,8 @@ HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; std::string myProtocol = "my-protocol"; @@ -111,8 +111,8 @@ HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; context.SetWebsocketProxyType(WebsocketProxyType::USE_SPECIFIED); diff --git a/test/unittest/sockettest/websocket_inner_unittest.cpp b/test/unittest/sockettest/websocket_inner_unittest.cpp index 9c6370d68f32e325107c737fc438ffdb0fb9f195..ae8b423115e9d1788070ae4f3be22629a93ea1f3 100644 --- a/test/unittest/sockettest/websocket_inner_unittest.cpp +++ b/test/unittest/sockettest/websocket_inner_unittest.cpp @@ -64,7 +64,7 @@ HWTEST_F(WebSocketTest, WebSocketRegistcallback001, TestSize.Level1) closeOptions.reason = ""; client->Registcallback(OnOpen, OnMessage, OnError, OnClose); int32_t ret = client->Connect("www.baidu.com", openOptions); - EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_CONNECTION_TO_SERVER_FAIL); + EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_OK); } HWTEST_F(WebSocketTest, WebSocketConnect002, TestSize.Level1) @@ -74,7 +74,7 @@ HWTEST_F(WebSocketTest, WebSocketConnect002, TestSize.Level1) openOptions.headers["Authorization"] = "Bearer your_token_here"; client->Registcallback(OnOpen, OnMessage, OnError, OnClose); ret = client->Connect("www.baidu.com", openOptions); - EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_CONNECTION_TO_SERVER_FAIL); + EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_OK); } HWTEST_F(WebSocketTest, WebSocketSend003, TestSize.Level1) @@ -84,7 +84,7 @@ HWTEST_F(WebSocketTest, WebSocketSend003, TestSize.Level1) int32_t length = std::strlen(data); client->Connect("www.baidu.com", openOptions); ret = client->Send(const_cast(data), length); - EXPECT_EQ(ret, 0); + EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_OK); } HWTEST_F(WebSocketTest, WebSocketClose004, TestSize.Level1) @@ -100,6 +100,7 @@ HWTEST_F(WebSocketTest, WebSocketClose004, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketDestroy005, TestSize.Level1) { int32_t ret; + WebSocketClient *client = new WebSocketClient(); ret = client->Destroy(); delete client; EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_ERROR_HAVE_NO_CONNECT_CONTEXT); @@ -119,7 +120,6 @@ HWTEST_F(WebSocketTest, WebSocketBranchTest001, TestSize.Level1) CloseOption options; options.reason = ""; options.code = 0; - WebSocketClient *client = new WebSocketClient(); EXPECT_TRUE(client->GetClientContext() != nullptr); client->GetClientContext()->openStatus = TEST_LENGTH; ret = client->Close(options); diff --git a/test/unittest/tcp_test/TcpSocketCallbackTest.cpp b/test/unittest/tcp_test/TcpSocketCallbackTest.cpp index ec1cb39cc58f1cdb3411eb6d81621b0020ba2a89..3f1084dbb852b803bc331eb02ce411edc6964e45 100644 --- a/test/unittest/tcp_test/TcpSocketCallbackTest.cpp +++ b/test/unittest/tcp_test/TcpSocketCallbackTest.cpp @@ -41,13 +41,14 @@ public: namespace { using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Socket; HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpAddMembership(&context); EXPECT_EQ(ret, false); } @@ -55,8 +56,8 @@ HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpDropMembership(&context); EXPECT_EQ(ret, false); } @@ -64,8 +65,8 @@ HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetTTLContext context(env, eventManager); bool ret = SocketExec::ExecSetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -73,8 +74,8 @@ HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetTTLContext context(env, eventManager); bool ret = SocketExec::ExecGetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -82,8 +83,8 @@ HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecSetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -91,8 +92,8 @@ HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecGetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -100,8 +101,8 @@ HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketBindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketBindContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketBind(&context); EXPECT_EQ(ret, false); } @@ -109,8 +110,8 @@ HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketConnectContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnect(&context); EXPECT_EQ(ret, false); } @@ -118,8 +119,8 @@ HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSend(&context); EXPECT_EQ(ret, false); } @@ -127,8 +128,8 @@ HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketClose(&context); EXPECT_EQ(ret, false); } @@ -136,8 +137,8 @@ HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetState(&context); EXPECT_EQ(ret, true); } @@ -145,8 +146,8 @@ HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetSocketFdContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetSocketFdContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetSocketFd(&context); EXPECT_EQ(ret, true); } @@ -154,8 +155,8 @@ HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSetExtraOptions(&context); EXPECT_EQ(ret, true); } @@ -163,8 +164,8 @@ HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -172,8 +173,8 @@ HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerListenContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerListen(&context); EXPECT_EQ(ret, false); } @@ -181,8 +182,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetState(&context); EXPECT_EQ(ret, true); } @@ -190,8 +191,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerSetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -199,8 +200,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -208,8 +209,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionSend(&context); EXPECT_EQ(ret, false); } @@ -217,8 +218,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionClose(&context); EXPECT_EQ(ret, false); } diff --git a/test/unittest/tcp_test/TcpSocketSSLTest.cpp b/test/unittest/tcp_test/TcpSocketSSLTest.cpp index e661eea9fbcee95dbcc4f6faadfffcd4e4c033cb..4515f9af5e6afe8db97bbe8da3a8e7dcb787f6f0 100644 --- a/test/unittest/tcp_test/TcpSocketSSLTest.cpp +++ b/test/unittest/tcp_test/TcpSocketSSLTest.cpp @@ -43,7 +43,8 @@ using namespace OHOS::NetStack::Ssl; HWTEST_F(NetsslTest, CertVerifyTest001, TestSize.Level1) { napi_env env = nullptr; - CertContext context(env, nullptr); + std::shared_ptr manager = nullptr; + CertContext context(env, manager); bool ret = SslExec::ExecVerify(&context); EXPECT_EQ(ret, false); diff --git a/test/unittest/tcp_test/TcpSocketTest.cpp b/test/unittest/tcp_test/TcpSocketTest.cpp index 01b61c653795a260cc5f4ae31ad17055cb7ea429..79f30fc87f9df5a9ef66b360dd2b286f02ddad0f 100644 --- a/test/unittest/tcp_test/TcpSocketTest.cpp +++ b/test/unittest/tcp_test/TcpSocketTest.cpp @@ -43,8 +43,8 @@ using namespace OHOS::NetStack::Websocket; HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); } @@ -52,8 +52,8 @@ HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - SendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + SendContext context(env, eventManager); bool ret = WebSocketExec::ExecSend(&context); EXPECT_EQ(ret, false); } @@ -61,8 +61,8 @@ HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - CloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + CloseContext context(env, eventManager); bool ret = WebSocketExec::ExecClose(&context); EXPECT_EQ(ret, false); } @@ -76,8 +76,8 @@ HWTEST_F(WebSocketTest, WebSocketTest004, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = "/etc/ssl/certs/test_ca.crt"; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -86,8 +86,8 @@ HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = ""; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -96,8 +96,8 @@ HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; std::string myProtocol = "my-protocol"; @@ -111,8 +111,8 @@ HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; context.SetWebsocketProxyType(WebsocketProxyType::USE_SPECIFIED); diff --git a/test/unittest/test_tls/clientTest/TlsSocketBranchTest.cpp b/test/unittest/test_tls/clientTest/TlsSocketBranchTest.cpp index df362fc1d2fd9917b49c72dc64b387b33b3b4edc..aad56a62f464e58b3966745cc715a7ad25ef6a2c 100644 --- a/test/unittest/test_tls/clientTest/TlsSocketBranchTest.cpp +++ b/test/unittest/test_tls/clientTest/TlsSocketBranchTest.cpp @@ -241,35 +241,35 @@ HWTEST_F(TlsSocketBranchTest, BranchTest5, TestSize.Level2) TLSConnectOptions tlsConnectOptions = BaseOption(); AccessToken token; - TLSSocket tlsSocket; - tlsSocket.OnError( + auto tlsSocket = std::make_shared(); + tlsSocket->OnError( [](int32_t errorNumber, const std::string &errorString) { EXPECT_NE(TLSSOCKET_SUCCESS, errorNumber); }); - tlsSocket.Connect(tlsConnectOptions, [](int32_t errCode) { EXPECT_NE(TLSSOCKET_SUCCESS, errCode); }); + tlsSocket->Connect(tlsConnectOptions, [](int32_t errCode) { EXPECT_NE(TLSSOCKET_SUCCESS, errCode); }); std::string getData; - tlsSocket.OnMessage([&getData](const std::string &data, const Socket::SocketRemoteInfo &remoteInfo) { + tlsSocket->OnMessage([&getData](const std::string &data, const Socket::SocketRemoteInfo &remoteInfo) { EXPECT_STREQ(getData.data(), nullptr); }); const std::string data = "how do you do?"; Socket::TCPSendOptions tcpSendOptions; tcpSendOptions.SetData(data); - tlsSocket.Send(tcpSendOptions, [](int32_t errCode) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - tlsSocket.GetSignatureAlgorithms( + tlsSocket->Send(tcpSendOptions, [](int32_t errCode) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); + tlsSocket->GetSignatureAlgorithms( [](int32_t errCode, const std::vector &algorithms) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - tlsSocket.GetCertificate( + tlsSocket->GetCertificate( [](int32_t errCode, const X509CertRawData &cert) { EXPECT_NE(errCode, TLSSOCKET_SUCCESS); }); - tlsSocket.GetCipherSuite( + tlsSocket->GetCipherSuite( [](int32_t errCode, const std::vector &suite) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - tlsSocket.GetProtocol([](int32_t errCode, const std::string &protocol) { EXPECT_EQ(errCode, TLSSOCKET_SUCCESS); }); - tlsSocket.GetRemoteCertificate( + tlsSocket->GetProtocol([](int32_t errCode, const std::string &protocol) { EXPECT_EQ(errCode, TLSSOCKET_SUCCESS); }); + tlsSocket->GetRemoteCertificate( [](int32_t errCode, const X509CertRawData &cert) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - (void)tlsSocket.Close([](int32_t errCode) { EXPECT_FALSE(errCode == TLSSOCKET_SUCCESS); }); + (void)tlsSocket->Close([](int32_t errCode) { EXPECT_FALSE(errCode == TLSSOCKET_SUCCESS); }); } HWTEST_F(TlsSocketBranchTest, BranchTest6, TestSize.Level2) { TLSConnectOptions connectOptions = BaseOption(); - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); TLSSocket::TLSSocketInternal *tlsSocketInternal = new TLSSocket::TLSSocketInternal(); bool isConnectToHost = tlsSocketInternal->TlsConnectToHost(SOCKET_FD, connectOptions, false); EXPECT_FALSE(isConnectToHost); @@ -295,7 +295,7 @@ HWTEST_F(TlsSocketBranchTest, BranchTest6, TestSize.Level2) HWTEST_F(TlsSocketBranchTest, BranchTest7, TestSize.Level2) { - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); TLSSocket::TLSSocketInternal *tlsSocketInternal = new TLSSocket::TLSSocketInternal(); std::vector alpnProtocols; diff --git a/test/unittest/tls_test/client/TlsSocketBranchTest.cpp b/test/unittest/tls_test/client/TlsSocketBranchTest.cpp index 22544225d97f8535e5863d28cd8fcdba7e6f1cde..1f26e8824ab75fa76e681ef0d7f07b77663fa090 100644 --- a/test/unittest/tls_test/client/TlsSocketBranchTest.cpp +++ b/test/unittest/tls_test/client/TlsSocketBranchTest.cpp @@ -241,35 +241,35 @@ HWTEST_F(TlsSocketBranchTest, BranchTest5, TestSize.Level2) TLSConnectOptions tlsConnectOptions = BaseOption(); AccessToken token; - TLSSocket tlsSocket; - tlsSocket.OnError( + auto tlsSocket = std::make_shared(); + tlsSocket->OnError( [](int32_t errorNumber, const std::string &errorString) { EXPECT_NE(TLSSOCKET_SUCCESS, errorNumber); }); - tlsSocket.Connect(tlsConnectOptions, [](int32_t errCode) { EXPECT_NE(TLSSOCKET_SUCCESS, errCode); }); + tlsSocket->Connect(tlsConnectOptions, [](int32_t errCode) { EXPECT_NE(TLSSOCKET_SUCCESS, errCode); }); std::string getData; - tlsSocket.OnMessage([&getData](const std::string &data, const Socket::SocketRemoteInfo &remoteInfo) { + tlsSocket->OnMessage([&getData](const std::string &data, const Socket::SocketRemoteInfo &remoteInfo) { EXPECT_STREQ(getData.data(), nullptr); }); const std::string data = "how do you do?"; Socket::TCPSendOptions tcpSendOptions; tcpSendOptions.SetData(data); - tlsSocket.Send(tcpSendOptions, [](int32_t errCode) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - tlsSocket.GetSignatureAlgorithms( + tlsSocket->Send(tcpSendOptions, [](int32_t errCode) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); + tlsSocket->GetSignatureAlgorithms( [](int32_t errCode, const std::vector &algorithms) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - tlsSocket.GetCertificate( + tlsSocket->GetCertificate( [](int32_t errCode, const X509CertRawData &cert) { EXPECT_NE(errCode, TLSSOCKET_SUCCESS); }); - tlsSocket.GetCipherSuite( + tlsSocket->GetCipherSuite( [](int32_t errCode, const std::vector &suite) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - tlsSocket.GetProtocol([](int32_t errCode, const std::string &protocol) { EXPECT_EQ(errCode, TLSSOCKET_SUCCESS); }); - tlsSocket.GetRemoteCertificate( + tlsSocket->GetProtocol([](int32_t errCode, const std::string &protocol) { EXPECT_EQ(errCode, TLSSOCKET_SUCCESS); }); + tlsSocket->GetRemoteCertificate( [](int32_t errCode, const X509CertRawData &cert) { EXPECT_EQ(errCode, TLS_ERR_SSL_NULL); }); - (void)tlsSocket.Close([](int32_t errCode) { EXPECT_FALSE(errCode == TLSSOCKET_SUCCESS); }); + (void)tlsSocket->Close([](int32_t errCode) { EXPECT_FALSE(errCode == TLSSOCKET_SUCCESS); }); } HWTEST_F(TlsSocketBranchTest, BranchTest6, TestSize.Level2) { TLSConnectOptions connectOptions = BaseOption(); - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); TLSSocket::TLSSocketInternal *tlsSocketInternal = new TLSSocket::TLSSocketInternal(); bool isConnectToHost = tlsSocketInternal->TlsConnectToHost(SOCKET_FD, connectOptions, false); EXPECT_FALSE(isConnectToHost); @@ -295,7 +295,7 @@ HWTEST_F(TlsSocketBranchTest, BranchTest6, TestSize.Level2) HWTEST_F(TlsSocketBranchTest, BranchTest7, TestSize.Level2) { - TLSSocket tlsSocket; + auto tlsSocket = std::make_shared(); TLSSocket::TLSSocketInternal *tlsSocketInternal = new TLSSocket::TLSSocketInternal(); std::vector alpnProtocols; diff --git a/test/unittest/tls_test/server/tls_socket_server_branch_test.cpp b/test/unittest/tls_test/server/tls_socket_server_branch_test.cpp index 5c7d1a012dff08320d4ea3f58643ad4462a71d4e..2cb2b40e23ce356be56532b7fc114758d26b8187 100644 --- a/test/unittest/tls_test/server/tls_socket_server_branch_test.cpp +++ b/test/unittest/tls_test/server/tls_socket_server_branch_test.cpp @@ -305,10 +305,10 @@ HWTEST_F(TlsSocketServerBranchTest, TlsSocketServerBranchTest006, testing::ext:: Socket::SocketRemoteInfo remoteInfo; connection->CallOnMessageCallback(socketFd, testString, remoteInfo); - EventManager manager; - tlsSocketServer->CloseConnectionByEventManager(&manager); - tlsSocketServer->DeleteConnectionByEventManager(&manager); - auto connections = tlsSocketServer->GetConnectionByClientEventManager(&manager); + auto manager = std::make_shared(); + tlsSocketServer->CloseConnectionByEventManager(manager); + tlsSocketServer->DeleteConnectionByEventManager(manager); + auto connections = tlsSocketServer->GetConnectionByClientEventManager(manager); EXPECT_TRUE(connections == nullptr); } diff --git a/test/unittest/tlssocket/server/tls_socket_server_branch_test.cpp b/test/unittest/tlssocket/server/tls_socket_server_branch_test.cpp index 5c7d1a012dff08320d4ea3f58643ad4462a71d4e..2cb2b40e23ce356be56532b7fc114758d26b8187 100644 --- a/test/unittest/tlssocket/server/tls_socket_server_branch_test.cpp +++ b/test/unittest/tlssocket/server/tls_socket_server_branch_test.cpp @@ -305,10 +305,10 @@ HWTEST_F(TlsSocketServerBranchTest, TlsSocketServerBranchTest006, testing::ext:: Socket::SocketRemoteInfo remoteInfo; connection->CallOnMessageCallback(socketFd, testString, remoteInfo); - EventManager manager; - tlsSocketServer->CloseConnectionByEventManager(&manager); - tlsSocketServer->DeleteConnectionByEventManager(&manager); - auto connections = tlsSocketServer->GetConnectionByClientEventManager(&manager); + auto manager = std::make_shared(); + tlsSocketServer->CloseConnectionByEventManager(manager); + tlsSocketServer->DeleteConnectionByEventManager(manager); + auto connections = tlsSocketServer->GetConnectionByClientEventManager(manager); EXPECT_TRUE(connections == nullptr); } diff --git a/test/unittest/udp_test/SocketTest.cpp b/test/unittest/udp_test/SocketTest.cpp index 3f556b7bb1bbaa4a5b711e5ccd132d4ecf873dde..6a219946a523fc1d04accdaec1389505f562a7d0 100644 --- a/test/unittest/udp_test/SocketTest.cpp +++ b/test/unittest/udp_test/SocketTest.cpp @@ -41,13 +41,14 @@ public: namespace { using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Socket; HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpAddMembership(&context); EXPECT_EQ(ret, false); } @@ -55,8 +56,8 @@ HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpDropMembership(&context); EXPECT_EQ(ret, false); } @@ -64,8 +65,8 @@ HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetTTLContext context(env, eventManager); bool ret = SocketExec::ExecSetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -73,8 +74,8 @@ HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetTTLContext context(env, eventManager); bool ret = SocketExec::ExecGetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -82,8 +83,8 @@ HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecSetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -91,8 +92,8 @@ HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecGetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -100,8 +101,8 @@ HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketBindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketBindContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketBind(&context); EXPECT_EQ(ret, false); } @@ -109,8 +110,8 @@ HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketConnectContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnect(&context); EXPECT_EQ(ret, false); } @@ -118,8 +119,8 @@ HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSend(&context); EXPECT_EQ(ret, false); } @@ -127,8 +128,8 @@ HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketClose(&context); EXPECT_EQ(ret, false); } @@ -136,8 +137,8 @@ HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetState(&context); EXPECT_EQ(ret, true); } @@ -145,8 +146,8 @@ HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetSocketFdContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetSocketFdContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetSocketFd(&context); EXPECT_EQ(ret, true); } @@ -154,8 +155,8 @@ HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSetExtraOptions(&context); EXPECT_EQ(ret, true); } @@ -163,8 +164,8 @@ HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -172,8 +173,8 @@ HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerListenContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerListen(&context); EXPECT_EQ(ret, false); } @@ -181,8 +182,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetState(&context); EXPECT_EQ(ret, true); } @@ -190,8 +191,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerSetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -199,8 +200,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -208,8 +209,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionSend(&context); EXPECT_EQ(ret, false); } @@ -217,8 +218,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionClose(&context); EXPECT_EQ(ret, false); } diff --git a/test/unittest/udp_test/TcpSocketCallbackTest.cpp b/test/unittest/udp_test/TcpSocketCallbackTest.cpp index 3f556b7bb1bbaa4a5b711e5ccd132d4ecf873dde..6a219946a523fc1d04accdaec1389505f562a7d0 100644 --- a/test/unittest/udp_test/TcpSocketCallbackTest.cpp +++ b/test/unittest/udp_test/TcpSocketCallbackTest.cpp @@ -41,13 +41,14 @@ public: namespace { using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Socket; HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpAddMembership(&context); EXPECT_EQ(ret, false); } @@ -55,8 +56,8 @@ HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpDropMembership(&context); EXPECT_EQ(ret, false); } @@ -64,8 +65,8 @@ HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetTTLContext context(env, eventManager); bool ret = SocketExec::ExecSetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -73,8 +74,8 @@ HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetTTLContext context(env, eventManager); bool ret = SocketExec::ExecGetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -82,8 +83,8 @@ HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecSetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -91,8 +92,8 @@ HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecGetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -100,8 +101,8 @@ HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketBindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketBindContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketBind(&context); EXPECT_EQ(ret, false); } @@ -109,8 +110,8 @@ HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketConnectContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnect(&context); EXPECT_EQ(ret, false); } @@ -118,8 +119,8 @@ HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSend(&context); EXPECT_EQ(ret, false); } @@ -127,8 +128,8 @@ HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketClose(&context); EXPECT_EQ(ret, false); } @@ -136,8 +137,8 @@ HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetState(&context); EXPECT_EQ(ret, true); } @@ -145,8 +146,8 @@ HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetSocketFdContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetSocketFdContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetSocketFd(&context); EXPECT_EQ(ret, true); } @@ -154,8 +155,8 @@ HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSetExtraOptions(&context); EXPECT_EQ(ret, true); } @@ -163,8 +164,8 @@ HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -172,8 +173,8 @@ HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerListenContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerListen(&context); EXPECT_EQ(ret, false); } @@ -181,8 +182,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetState(&context); EXPECT_EQ(ret, true); } @@ -190,8 +191,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerSetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -199,8 +200,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -208,8 +209,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionSend(&context); EXPECT_EQ(ret, false); } @@ -217,8 +218,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionClose(&context); EXPECT_EQ(ret, false); } diff --git a/test/unittest/websocket/WebSocketTest.cpp b/test/unittest/websocket/WebSocketTest.cpp index 520e79ac67f810f9d5ebef4c964a80c9285f6c99..6a021bbfbb1d556eff9dbcd5d2ebaf319e0fb782 100755 --- a/test/unittest/websocket/WebSocketTest.cpp +++ b/test/unittest/websocket/WebSocketTest.cpp @@ -38,13 +38,14 @@ public: namespace { using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Websocket; HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); } @@ -52,8 +53,8 @@ HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - SendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + SendContext context(env, eventManager); bool ret = WebSocketExec::ExecSend(&context); EXPECT_EQ(ret, false); } @@ -61,8 +62,8 @@ HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - CloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + CloseContext context(env, eventManager); bool ret = WebSocketExec::ExecClose(&context); EXPECT_EQ(ret, false); } @@ -76,8 +77,8 @@ HWTEST_F(WebSocketTest, WebSocketTest004, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = "/etc/ssl/certs/test_ca.crt"; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -86,8 +87,8 @@ HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = ""; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -96,8 +97,8 @@ HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; std::string myProtocol = "my-protocol"; @@ -105,14 +106,14 @@ HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) std::string getMyProtocol = context.GetProtocol(); bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(getMyProtocol, "my-protocol"); - EXPECT_EQ(ret, false); + EXPECT_EQ(ret, true); } HWTEST_F(WebSocketTest, WebSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; context.SetWebsocketProxyType(WebsocketProxyType::USE_SPECIFIED); @@ -128,6 +129,6 @@ HWTEST_F(WebSocketTest, WebSocketTest008, TestSize.Level1) EXPECT_EQ(getHost, "192.168.147.60"); EXPECT_EQ(getPort, 8888); EXPECT_EQ(getExclusions, "www.httpbin.org"); - EXPECT_EQ(ret, false); + EXPECT_EQ(ret, true); } } // namespace \ No newline at end of file diff --git a/test/unittest/websocket_capi_unittest/websocket_capi_unittest.cpp b/test/unittest/websocket_capi_unittest/websocket_capi_unittest.cpp index 64aced406061f6e25952dd7d6d5b216b301b849b..22279b362f5b3e93f3c9160142e0e86900e36e52 100755 --- a/test/unittest/websocket_capi_unittest/websocket_capi_unittest.cpp +++ b/test/unittest/websocket_capi_unittest/websocket_capi_unittest.cpp @@ -36,7 +36,6 @@ public: namespace { using namespace testing::ext; -constexpr const uint32_t NO_CONNECT_CONTEXT_ERROR = 1018; static void OnOpen(struct WebSocket *client, WebSocket_OpenResult openResult) {} @@ -140,7 +139,7 @@ HWTEST_F(WebSocketTest, WebSocketSendTest007, TestSize.Level1) ret = OH_WebSocketClient_Send(client, const_cast(senddata2), sizeof(senddata2)); EXPECT_EQ(ret, WebSocket_ErrCode::WEBSOCKET_OK); ret = OH_WebSocketClient_Destroy(client); - EXPECT_EQ(ret, NO_CONNECT_CONTEXT_ERROR); + EXPECT_EQ(ret, WebSocket_ErrCode::WEBSOCKET_OK); } } // namespace \ No newline at end of file diff --git a/test/unittest/websocket_inner_unittest/websocket_inner_unittest.cpp b/test/unittest/websocket_inner_unittest/websocket_inner_unittest.cpp index abfab651f3cda6f11a6d6d082bb0fc97a587a401..f360f5ea1bf270eba470e89ff268e5333fc544dd 100644 --- a/test/unittest/websocket_inner_unittest/websocket_inner_unittest.cpp +++ b/test/unittest/websocket_inner_unittest/websocket_inner_unittest.cpp @@ -64,7 +64,7 @@ HWTEST_F(WebSocketTest, WebSocketRegistcallback001, TestSize.Level1) closeOptions.reason = ""; client->Registcallback(OnOpen, OnMessage, OnError, OnClose); int32_t ret = client->Connect("www.baidu.com", openOptions); - EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_CONNECTION_TO_SERVER_FAIL); + EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_NONE_ERR); } HWTEST_F(WebSocketTest, WebSocketConnect002, TestSize.Level1) @@ -74,7 +74,7 @@ HWTEST_F(WebSocketTest, WebSocketConnect002, TestSize.Level1) openOptions.headers["Authorization"] = "Bearer your_token_here"; client->Registcallback(OnOpen, OnMessage, OnError, OnClose); ret = client->Connect("www.baidu.com", openOptions); - EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_CONNECTION_TO_SERVER_FAIL); + EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_NONE_ERR); } HWTEST_F(WebSocketTest, WebSocketSend003, TestSize.Level1) @@ -84,7 +84,7 @@ HWTEST_F(WebSocketTest, WebSocketSend003, TestSize.Level1) int32_t length = std::strlen(data); client->Connect("www.baidu.com", openOptions); ret = client->Send(const_cast(data), length); - EXPECT_EQ(ret, 0); + EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_NONE_ERR); } HWTEST_F(WebSocketTest, WebSocketClose004, TestSize.Level1) @@ -100,6 +100,7 @@ HWTEST_F(WebSocketTest, WebSocketClose004, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketDestroy005, TestSize.Level1) { int32_t ret; + WebSocketClient *client = new WebSocketClient(); ret = client->Destroy(); delete client; EXPECT_EQ(ret, WebSocketErrorCode::WEBSOCKET_ERROR_HAVE_NO_CONNECT_CONTEXT); @@ -119,7 +120,6 @@ HWTEST_F(WebSocketTest, WebSocketBranchTest001, TestSize.Level1) CloseOption options; options.reason = ""; options.code = 0; - WebSocketClient *client = new WebSocketClient(); EXPECT_TRUE(client->GetClientContext() != nullptr); client->GetClientContext()->openStatus = TEST_LENGTH; ret = client->Close(options); diff --git a/test/unittest/websocket_test/SocketTest.cpp b/test/unittest/websocket_test/SocketTest.cpp index 5f93acaad2e2b1e7d752fe51dd617563aa3b491e..96a9f9806acdf9747c8d2c4a134e2d8148574056 100644 --- a/test/unittest/websocket_test/SocketTest.cpp +++ b/test/unittest/websocket_test/SocketTest.cpp @@ -41,13 +41,14 @@ public: namespace { using namespace testing::ext; +using namespace OHOS::NetStack; using namespace OHOS::NetStack::Socket; HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpAddMembership(&context); EXPECT_EQ(ret, false); } @@ -55,8 +56,8 @@ HWTEST_F(SocketTest, MulticastTest001, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastMembershipContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastMembershipContext context(env, eventManager); bool ret = SocketExec::ExecUdpDropMembership(&context); EXPECT_EQ(ret, false); } @@ -64,8 +65,8 @@ HWTEST_F(SocketTest, MulticastTest002, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetTTLContext context(env, eventManager); bool ret = SocketExec::ExecSetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -73,8 +74,8 @@ HWTEST_F(SocketTest, MulticastTest003, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetTTLContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetTTLContext context(env, eventManager); bool ret = SocketExec::ExecGetMulticastTTL(&context); EXPECT_EQ(ret, false); } @@ -82,8 +83,8 @@ HWTEST_F(SocketTest, MulticastTest004, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastSetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastSetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecSetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -91,8 +92,8 @@ HWTEST_F(SocketTest, MulticastTest005, TestSize.Level1) HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - MulticastGetLoopbackContext context(env, &eventManager); + auto eventManager = std::make_shared(); + MulticastGetLoopbackContext context(env, eventManager); bool ret = SocketExec::ExecGetLoopbackMode(&context); EXPECT_EQ(ret, false); } @@ -100,8 +101,8 @@ HWTEST_F(SocketTest, MulticastTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketBindContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketBindContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketBind(&context); EXPECT_EQ(ret, false); } @@ -109,8 +110,8 @@ HWTEST_F(SocketTest, LocalSocketTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketConnectContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnect(&context); EXPECT_EQ(ret, false); } @@ -118,8 +119,8 @@ HWTEST_F(SocketTest, LocalSocketTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSend(&context); EXPECT_EQ(ret, false); } @@ -127,8 +128,8 @@ HWTEST_F(SocketTest, LocalSocketTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketClose(&context); EXPECT_EQ(ret, false); } @@ -136,8 +137,8 @@ HWTEST_F(SocketTest, LocalSocketTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetState(&context); EXPECT_EQ(ret, true); } @@ -145,8 +146,8 @@ HWTEST_F(SocketTest, LocalSocketTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetSocketFdContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetSocketFdContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetSocketFd(&context); EXPECT_EQ(ret, true); } @@ -154,8 +155,8 @@ HWTEST_F(SocketTest, LocalSocketTest006, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketSetExtraOptions(&context); EXPECT_EQ(ret, true); } @@ -163,8 +164,8 @@ HWTEST_F(SocketTest, LocalSocketTest007, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -172,8 +173,8 @@ HWTEST_F(SocketTest, LocalSocketTest008, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerListenContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerListenContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerListen(&context); EXPECT_EQ(ret, false); } @@ -181,8 +182,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest001, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetStateContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetStateContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetState(&context); EXPECT_EQ(ret, true); } @@ -190,8 +191,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest002, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerSetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -199,8 +200,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest003, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerGetExtraOptionsContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerGetExtraOptionsContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketServerGetExtraOptions(&context); EXPECT_EQ(ret, false); } @@ -208,8 +209,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest004, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerSendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerSendContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionSend(&context); EXPECT_EQ(ret, false); } @@ -217,8 +218,8 @@ HWTEST_F(SocketTest, LocalSocketServerTest005, TestSize.Level1) HWTEST_F(SocketTest, LocalSocketServerTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - LocalSocketServerCloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + LocalSocketServerCloseContext context(env, eventManager); bool ret = LocalSocketExec::ExecLocalSocketConnectionClose(&context); EXPECT_EQ(ret, false); } diff --git a/test/unittest/websocket_test/WebSocketTest.cpp b/test/unittest/websocket_test/WebSocketTest.cpp index 520e79ac67f810f9d5ebef4c964a80c9285f6c99..7cb481a8982b33ab92b4fe12ab36d3caedf67c07 100644 --- a/test/unittest/websocket_test/WebSocketTest.cpp +++ b/test/unittest/websocket_test/WebSocketTest.cpp @@ -43,8 +43,8 @@ using namespace OHOS::NetStack::Websocket; HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); } @@ -52,8 +52,8 @@ HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - SendContext context(env, &eventManager); + auto eventManager = std::make_shared(); + SendContext context(env, eventManager); bool ret = WebSocketExec::ExecSend(&context); EXPECT_EQ(ret, false); } @@ -61,8 +61,8 @@ HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest003, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - CloseContext context(env, &eventManager); + auto eventManager = std::make_shared(); + CloseContext context(env, eventManager); bool ret = WebSocketExec::ExecClose(&context); EXPECT_EQ(ret, false); } @@ -76,8 +76,8 @@ HWTEST_F(WebSocketTest, WebSocketTest004, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = "/etc/ssl/certs/test_ca.crt"; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -86,8 +86,8 @@ HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.caPath_ = ""; bool ret = WebSocketExec::ExecConnect(&context); EXPECT_EQ(ret, false); @@ -96,8 +96,8 @@ HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; std::string myProtocol = "my-protocol"; @@ -111,8 +111,8 @@ HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) HWTEST_F(WebSocketTest, WebSocketTest008, TestSize.Level1) { napi_env env = nullptr; - OHOS::NetStack::EventManager eventManager; - ConnectContext context(env, &eventManager); + auto eventManager = std::make_shared(); + ConnectContext context(env, eventManager); context.url = "ws://123.123.123.123:9000"; context.SetWebsocketProxyType(WebsocketProxyType::USE_SPECIFIED); diff --git a/test/unittest/websocket_test/websocket_inner_unittest.cpp b/test/unittest/websocket_test/websocket_inner_unittest.cpp index 0abcdce211745f2b6642b1c5b3a26af3cfaa7bf3..dac687bd62c7a83915c77176635a85f19395b105 100644 --- a/test/unittest/websocket_test/websocket_inner_unittest.cpp +++ b/test/unittest/websocket_test/websocket_inner_unittest.cpp @@ -119,7 +119,6 @@ HWTEST_F(WebSocketTest, WebSocketBranchTest001, TestSize.Level1) CloseOption options; options.reason = ""; options.code = 0; - WebSocketClient *client = new WebSocketClient(); EXPECT_TRUE(client->GetClientContext() != nullptr); client->GetClientContext()->openStatus = TEST_LENGTH; ret = client->Close(options); diff --git a/utils/napi_utils/include/base_context.h b/utils/napi_utils/include/base_context.h index 43c235fd68ad7a76ad89730fdf65acde00e7e09e..8324aca9836468fdc978d0e31a45f75485059c28 100644 --- a/utils/napi_utils/include/base_context.h +++ b/utils/napi_utils/include/base_context.h @@ -41,8 +41,6 @@ class BaseContext { public: BaseContext() = delete; - BaseContext(napi_env env, EventManager *manager); - BaseContext(napi_env env, const std::shared_ptr &sharedManager); virtual ~BaseContext(); @@ -83,8 +81,6 @@ public: [[nodiscard]] const std::string &GetAsyncWorkName() const; - void Emit(const std::string &type, const std::pair &argv); - void EmitSharedManager(const std::string &type, const std::pair &argv); void SetNeedPromise(bool needPromise); @@ -107,8 +103,6 @@ public: [[nodiscard]] bool IsCleartextNotPermitted() const; - [[nodiscard]] EventManager *GetManager() const; - [[nodiscard]] std::shared_ptr GetSharedManager() const; void SetSharedManager(const std::shared_ptr &sharedManager); @@ -130,9 +124,6 @@ public: napi_async_work asyncWorkBack3_ = nullptr; napi_async_work asyncWorkBack4_ = nullptr; -protected: - EventManager *manager_ = nullptr; - private: napi_env env_ = nullptr; diff --git a/utils/napi_utils/include/event_manager.h b/utils/napi_utils/include/event_manager.h index f8eff4da580f258a7035f581bdec441ae959b083..e68f4b26b39a2489a94374ba374b68893dfabb0d 100644 --- a/utils/napi_utils/include/event_manager.h +++ b/utils/napi_utils/include/event_manager.h @@ -69,24 +69,12 @@ public: [[nodiscard]] void *GetData(); - void EmitByUv(const std::string &type, void *data, void(Handler)(uv_work_t *, int status)); - - void EmitByUvWithoutCheck(const std::string &type, void *data, void(Handler)(uv_work_t *, int status)); - void EmitByUvWithoutCheckShared(const std::string &type, void *data, void(Handler)(uv_work_t *, int status)); bool HasEventListener(const std::string &type); void DeleteListener(const std::string &type); - static void SetInvalid(EventManager *manager); - - static void SetInvalidWithoutDelete(EventManager *manager); - - static bool IsManagerValid(EventManager *manager); - - static void SetValid(EventManager *manager); - void SetQueueData(void *data); void *GetQueueData(); @@ -139,7 +127,6 @@ private: std::queue dataQueue_; static EventManagerMagic magic_; static std::mutex mutexForManager_; - static std::unordered_set validManager_; napi_ref eventRef_; std::atomic_bool isDestroy_; std::string webSocketTextData_; @@ -157,17 +144,6 @@ public: } innerMagic_; }; -struct UvWorkWrapper { - UvWorkWrapper() = delete; - - UvWorkWrapper(void *theData, napi_env theEnv, std::string eventType, EventManager *eventManager); - - void *data = nullptr; - napi_env env = nullptr; - std::string type; - EventManager *manager = nullptr; -}; - class EventManagerForHttp { private: [[maybe_unused]] std::mutex mutexForListenersAndEmitByUv_; diff --git a/utils/napi_utils/include/module_template.h b/utils/napi_utils/include/module_template.h index ba3269eba6f49de7c5ec30147410db53f31b132b..7333abf68a321500313ec46537da6f3c5856aa9d 100644 --- a/utils/napi_utils/include/module_template.h +++ b/utils/napi_utils/include/module_template.h @@ -59,14 +59,15 @@ napi_value InterfaceWithManagerWrapper(napi_env env, napi_callback_info info, co return NapiUtils::GetUndefined(env); } - auto context = new (std::nothrow) Context(env, nullptr); + std::shared_ptr sharedManager = nullptr; + if (wrapper) { + sharedManager = wrapper->sharedManager; + } + auto context = new (std::nothrow) Context(env, sharedManager); if (!context) { NETSTACK_LOGE("new context is nullptr"); return NapiUtils::GetUndefined(env); } - if (wrapper) { - context->SetSharedManager(wrapper->sharedManager); - } context->ParseParams(params, paramsCount); if (context->IsNeedThrowException()) { // only api9 or later need throw exception. napi_throw_error(env, std::to_string(context->GetErrorCode()).c_str(), context->GetErrorMessage().c_str()); @@ -109,14 +110,11 @@ napi_value InterfaceWithSharedManager(napi_env env, napi_callback_info info, con return NapiUtils::GetUndefined(env); } - auto context = new (std::nothrow) Context(env, nullptr); + auto context = new (std::nothrow) Context(env, *sharedManager); if (!context) { NETSTACK_LOGE("new context is nullptr"); return NapiUtils::GetUndefined(env); } - if (sharedManager) { - context->SetSharedManager(*sharedManager); - } context->ParseParams(params, paramsCount); if (context->IsNeedThrowException()) { // only api9 or later need throw exception. napi_throw_error(env, std::to_string(context->GetErrorCode()).c_str(), context->GetErrorMessage().c_str()); @@ -159,14 +157,15 @@ napi_value InterfaceWithOutAsyncWorkWithManagerWrapper(napi_env env, napi_callba return NapiUtils::GetUndefined(env); } - auto context = new (std::nothrow) Context(env, nullptr); + std::shared_ptr sharedManager = nullptr; + if (wrapper) { + sharedManager = wrapper->sharedManager; + } + auto context = new (std::nothrow) Context(env, sharedManager); if (!context) { NETSTACK_LOGE("new context is nullptr"); return NapiUtils::GetUndefined(env); } - if (wrapper) { - context->SetSharedManager(wrapper->sharedManager); - } context->ParseParams(params, paramsCount); napi_value ret = NapiUtils::GetUndefined(env); if (NapiUtils::GetValueType(env, context->GetCallback()) != napi_function && context->IsNeedPromise()) { @@ -208,14 +207,11 @@ napi_value InterfaceWithOutAsyncWorkWithSharedManager(napi_env env, napi_callbac return NapiUtils::GetUndefined(env); } - auto context = new (std::nothrow) Context(env, nullptr); + auto context = new (std::nothrow) Context(env, *sharedManager); if (!context) { NETSTACK_LOGE("new context is nullptr"); return NapiUtils::GetUndefined(env); } - if (sharedManager) { - context->SetSharedManager(*sharedManager); - } context->ParseParams(params, paramsCount); napi_value ret = NapiUtils::GetUndefined(env); if (NapiUtils::GetValueType(env, context->GetCallback()) != napi_function && context->IsNeedPromise()) { @@ -237,111 +233,46 @@ napi_value InterfaceWithOutAsyncWorkWithSharedManager(napi_env env, napi_callbac return ret; } -template -napi_value Interface(napi_env env, napi_callback_info info, const std::string &asyncWorkName, - bool (*Work)(napi_env, napi_value, Context *), AsyncWorkExecutor executor, - AsyncWorkCallback callback) +template static void CallbackTemplate(uv_work_t *work, int status) { - NETSTACK_LOGI("js invoke %{public}s", asyncWorkName.c_str()); - static_assert(std::is_base_of::value); + (void)status; - napi_value thisVal = nullptr; - size_t paramsCount = MAX_PARAM_NUM; - napi_value params[MAX_PARAM_NUM] = {nullptr}; - NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); + auto workWrapper = static_cast(work->data); + napi_env env = workWrapper->env; + auto closeScope = [env](napi_handle_scope scope) { NapiUtils::CloseScope(env, scope); }; + std::unique_ptr scope(NapiUtils::OpenScope(env), closeScope); - EventManager *manager = nullptr; - auto napi_ret = napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (napi_ret != napi_ok) { - NETSTACK_LOGE("get event manager in napi_unwrap failed, napi_ret is %{public}d", napi_ret); - return NapiUtils::GetUndefined(env); - } + napi_value obj = MakeJsValue(env, workWrapper->data); - auto context = new (std::nothrow) Context(env, manager); - if (!context) { - NETSTACK_LOGE("new context is nullptr"); - return NapiUtils::GetUndefined(env); - } - context->ParseParams(params, paramsCount); - if (context->IsNeedThrowException()) { // only api9 or later need throw exception. - napi_throw_error(env, std::to_string(context->GetErrorCode()).c_str(), context->GetErrorMessage().c_str()); - delete context; - context = nullptr; - return NapiUtils::GetUndefined(env); - } - if (Work != nullptr) { - if (!Work(env, thisVal, context)) { - NETSTACK_LOGE("work failed error code = %{public}d", context->GetErrorCode()); - } - } + std::pair arg = {NapiUtils::GetUndefined(workWrapper->env), obj}; + workWrapper->manager->Emit(workWrapper->type, arg); - context->CreateReference(thisVal); - context->CreateAsyncWork(asyncWorkName, executor, callback); - if (NapiUtils::GetValueType(env, context->GetCallback()) != napi_function && context->IsNeedPromise()) { - NETSTACK_LOGD("%{public}s create promise", asyncWorkName.c_str()); - return context->CreatePromise(); - } - return NapiUtils::GetUndefined(env); + delete workWrapper; + delete work; } -template -napi_value InterfaceWithOutAsyncWork(napi_env env, napi_callback_info info, - bool (*Work)(napi_env, napi_value, Context *), const std::string &asyncWorkName, - AsyncWorkExecutor executor, AsyncWorkCallback callback) +template &)> +static void CallbackTemplateWithSharedManager(uv_work_t *work, int status) { - static_assert(std::is_base_of::value); - - napi_value thisVal = nullptr; - size_t paramsCount = MAX_PARAM_NUM; - napi_value params[MAX_PARAM_NUM] = {nullptr}; - NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); + (void)status; - EventManager *manager = nullptr; - auto napi_ret = napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (napi_ret != napi_ok) { - NETSTACK_LOGE("get event manager in napi_unwrap failed, napi_ret is %{public}d", napi_ret); - return NapiUtils::GetUndefined(env); - } - - auto context = new (std::nothrow) Context(env, manager); - if (!context) { - NETSTACK_LOGE("new context is nullptr"); - return NapiUtils::GetUndefined(env); - } - context->ParseParams(params, paramsCount); - napi_value ret = NapiUtils::GetUndefined(env); - if (NapiUtils::GetValueType(env, context->GetCallback()) != napi_function && context->IsNeedPromise()) { - NETSTACK_LOGD("%{public}s is invoked in promise mode", asyncWorkName.c_str()); - ret = context->CreatePromise(); - } else { - NETSTACK_LOGD("%{public}s is invoked in callback mode", asyncWorkName.c_str()); - } - context->CreateReference(thisVal); - if (Work != nullptr) { - if (!Work(env, thisVal, context)) { - NETSTACK_LOGE("work failed error code = %{public}d", context->GetErrorCode()); - } - } - if (!context->IsParseOK() || context->IsPermissionDenied() || context->IsNoAllowedHost() || - context->IsCleartextNotPermitted() || context->GetManager()->IsEventDestroy()) { - context->CreateAsyncWork(asyncWorkName, executor, callback); - } - return ret; -} + auto workWrapper = static_cast(work->data); + napi_env env = workWrapper->env; + auto closeScope = [env](napi_handle_scope scope) { NapiUtils::CloseScope(env, scope); }; + std::unique_ptr scope(NapiUtils::OpenScope(env), closeScope); -napi_value On(napi_env env, napi_callback_info info, const std::initializer_list &events, - bool asyncCallback); + napi_value obj = MakeJsValue(env, workWrapper->manager); -napi_value Once(napi_env env, napi_callback_info info, const std::initializer_list &events, - bool asyncCallback); + std::pair arg = {NapiUtils::GetUndefined(workWrapper->env), obj}; + workWrapper->manager->Emit(workWrapper->type, arg); -napi_value Off(napi_env env, napi_callback_info info, const std::initializer_list &events); + delete workWrapper; + delete work; +} void DefineClass(napi_env env, napi_value exports, const std::initializer_list &properties, const std::string &className); -napi_value NewInstance(napi_env env, napi_callback_info info, const std::string &className, Finalizer finalizer); - napi_value NewInstanceNoManager(napi_env env, napi_callback_info info, const std::string &name, Finalizer finalizer); napi_value NewInstanceWithSharedManager(napi_env env, napi_callback_info info, const std::string &className, diff --git a/utils/napi_utils/src/base_context.cpp b/utils/napi_utils/src/base_context.cpp index 1419fe0566a8a62cecb577737f1dad0d21e082eb..f3f3da35da44b0d63b883c883f7f6e4c18cef6c8 100644 --- a/utils/napi_utils/src/base_context.cpp +++ b/utils/napi_utils/src/base_context.cpp @@ -22,28 +22,8 @@ #include "node_api.h" namespace OHOS::NetStack { -BaseContext::BaseContext(napi_env env, EventManager *manager) - : manager_(manager), - env_(env), - ref_(nullptr), - parseOK_(false), - requestOK_(false), - errorCode_(0), - callback_(nullptr), - promiseRef_(nullptr), - asyncWork_(nullptr), - deferred_(nullptr), - needPromise_(true), - needThrowException_(false), - permissionDenied_(false), - noAllowedHost_(false), - cleartextNotPermitted_(false) -{ -} - BaseContext::BaseContext(napi_env env, const std::shared_ptr &sharedManager) - : manager_(nullptr), - env_(env), + : env_(env), ref_(nullptr), parseOK_(false), requestOK_(false), @@ -214,13 +194,6 @@ void BaseContext::EmitSharedManager(const std::string &type, const std::pair &argv) -{ - if (manager_ != nullptr) { - manager_->Emit(type, argv); - } -} - void BaseContext::SetNeedPromise(bool needPromise) { needPromise_ = needPromise; @@ -231,11 +204,6 @@ bool BaseContext::IsNeedPromise() const return needPromise_; } -EventManager *BaseContext::GetManager() const -{ - return manager_; -} - std::shared_ptr BaseContext::GetSharedManager() const { return sharedManager_; diff --git a/utils/napi_utils/src/event_manager.cpp b/utils/napi_utils/src/event_manager.cpp index 203e441949c3002e75068243569c6efee8a463e5..058122b892a748fca12da14babbaa88bdbbbed89 100644 --- a/utils/napi_utils/src/event_manager.cpp +++ b/utils/napi_utils/src/event_manager.cpp @@ -143,77 +143,6 @@ void *EventManager::GetQueueData() return nullptr; } -void EventManager::EmitByUvWithoutCheck(const std::string &type, void *data, void(Handler)(uv_work_t *, int status)) -{ - std::shared_lock lock2(mutexForListenersAndEmitByUv_); - bool foundHeader = std::find_if(listeners_.begin(), listeners_.end(), [](const EventListener &listener) { - return listener.MatchType(ON_HEADER_RECEIVE); - }) != listeners_.end(); - bool foundHeaders = std::find_if(listeners_.begin(), listeners_.end(), [](const EventListener &listener) { - return listener.MatchType(ON_HEADERS_RECEIVE); - }) != listeners_.end(); - if (!foundHeader && !foundHeaders) { - if (type == ON_HEADER_RECEIVE || type == ON_HEADERS_RECEIVE) { - auto tempMap = static_cast *>(data); - delete tempMap; - } - } else if (foundHeader && !foundHeaders) { - if (type == ON_HEADERS_RECEIVE) { - auto tempMap = static_cast *>(data); - delete tempMap; - } - } else if (!foundHeader) { - if (type == ON_HEADER_RECEIVE) { - auto tempMap = static_cast *>(data); - delete tempMap; - } - } - - std::for_each(listeners_.begin(), listeners_.end(), [type, data, Handler, this](const EventListener &listener) { - if (listener.MatchType(type)) { - auto workWrapper = new UvWorkWrapper(data, listener.GetEnv(), type, this); - listener.EmitByUv(type, workWrapper, Handler); - } - }); -} - -void EventManager::EmitByUv(const std::string &type, void *data, void(Handler)(uv_work_t *, int status)) -{ - std::shared_lock lock2(mutexForListenersAndEmitByUv_); - if (!EventManager::IsManagerValid(this)) { - return; - } - bool foundHeader = std::find_if(listeners_.begin(), listeners_.end(), [](const EventListener &listener) { - return listener.MatchType(ON_HEADER_RECEIVE); - }) != listeners_.end(); - bool foundHeaders = std::find_if(listeners_.begin(), listeners_.end(), [](const EventListener &listener) { - return listener.MatchType(ON_HEADERS_RECEIVE); - }) != listeners_.end(); - if (!foundHeader && !foundHeaders) { - if (type == ON_HEADER_RECEIVE || type == ON_HEADERS_RECEIVE) { - auto tempMap = static_cast *>(data); - delete tempMap; - } - } else if (foundHeader && !foundHeaders) { - if (type == ON_HEADERS_RECEIVE) { - auto tempMap = static_cast *>(data); - delete tempMap; - } - } else if (!foundHeader) { - if (type == ON_HEADER_RECEIVE) { - auto tempMap = static_cast *>(data); - delete tempMap; - } - } - - std::for_each(listeners_.begin(), listeners_.end(), [type, data, Handler, this](const EventListener &listener) { - if (listener.MatchType(type)) { - auto workWrapper = new UvWorkWrapper(data, listener.GetEnv(), type, this); - listener.EmitByUv(type, workWrapper, Handler); - } - }); -} - bool EventManager::HasEventListener(const std::string &type) { std::shared_lock lock(mutexForListenersAndEmitByUv_); @@ -229,58 +158,9 @@ void EventManager::DeleteListener(const std::string &type) listeners_.erase(it, listeners_.end()); } -std::unordered_set EventManager::validManager_; std::mutex EventManager::mutexForManager_; EventManagerMagic EventManager::magic_; -void EventManager::SetInvalid(EventManager *manager) -{ - if (magic_.magicNumber_ != EVENT_MANAGER_MAGIC_NUMBER) { - return; - } - std::lock_guard lock(mutexForManager_); - auto pos = validManager_.find(manager); - if (pos == validManager_.end()) { - NETSTACK_LOGE("The manager is not in the unordered_set"); - return; - } - validManager_.erase(pos); - delete manager; - manager = nullptr; -} - -void EventManager::SetInvalidWithoutDelete(EventManager *manager) -{ - if (magic_.magicNumber_ != EVENT_MANAGER_MAGIC_NUMBER) { - return; - } - std::lock_guard lock(mutexForManager_); - auto pos = validManager_.find(manager); - if (pos == validManager_.end()) { - NETSTACK_LOGE("The manager is not in the unordered_set"); - return; - } - validManager_.erase(pos); -} - -bool EventManager::IsManagerValid(EventManager *manager) -{ - if (magic_.magicNumber_ != EVENT_MANAGER_MAGIC_NUMBER) { - return false; - } - std::lock_guard lock(mutexForManager_); - return validManager_.find(manager) != validManager_.end(); -} - -void EventManager::SetValid(EventManager *manager) -{ - if (magic_.magicNumber_ != EVENT_MANAGER_MAGIC_NUMBER) { - return; - } - std::lock_guard lock(mutexForManager_); - validManager_.emplace(manager); -} - void EventManager::CreateEventReference(napi_env env, napi_value value) { if (env != nullptr && value != nullptr) { @@ -388,11 +268,6 @@ std::shared_ptr EventManager::GetWebSocketUserData() return webSocketUserData_; } -UvWorkWrapper::UvWorkWrapper(void *theData, napi_env theEnv, std::string eventType, EventManager *eventManager) - : data(theData), env(theEnv), type(std::move(eventType)), manager(eventManager) -{ -} - UvWorkWrapperShared::UvWorkWrapperShared(void *theData, napi_env theEnv, std::string eventType, const std::shared_ptr &eventManager) : data(theData), env(theEnv), type(std::move(eventType)), manager(eventManager) diff --git a/utils/napi_utils/src/module_template.cpp b/utils/napi_utils/src/module_template.cpp index 9712baeab4cd13628b539f38a14063e6ffd77509..6da72fe953f54eeff98e203fae4b612d9cf1917e 100644 --- a/utils/napi_utils/src/module_template.cpp +++ b/utils/napi_utils/src/module_template.cpp @@ -292,101 +292,6 @@ napi_value OffSharedManager(napi_env env, napi_callback_info info, const std::in return NapiUtils::GetUndefined(env); } -napi_value On(napi_env env, napi_callback_info info, const std::initializer_list &events, - bool asyncCallback) -{ - napi_value thisVal = nullptr; - size_t paramsCount = MAX_PARAM_NUM; - napi_value params[MAX_PARAM_NUM] = {nullptr}; - NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); - - if (paramsCount != EVENT_PARAM_NUM || NapiUtils::GetValueType(env, params[0]) != napi_string || - NapiUtils::GetValueType(env, params[1]) != napi_function) { - NETSTACK_LOGE("on off once interface para: [string, function]"); - napi_throw_error(env, std::to_string(PARSE_ERROR_CODE).c_str(), PARSE_ERROR_MSG); - return NapiUtils::GetUndefined(env); - } - - std::string event = NapiUtils::GetStringFromValueUtf8(env, params[0]); - if (std::find(events.begin(), events.end(), event) == events.end()) { - return NapiUtils::GetUndefined(env); - } - - EventManager *manager = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (manager != nullptr) { - manager->AddListener(env, event, params[1], false, asyncCallback); - } - - return NapiUtils::GetUndefined(env); -} - -napi_value Once(napi_env env, napi_callback_info info, const std::initializer_list &events, - bool asyncCallback) -{ - napi_value thisVal = nullptr; - size_t paramsCount = MAX_PARAM_NUM; - napi_value params[MAX_PARAM_NUM] = {nullptr}; - NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); - - if (paramsCount != EVENT_PARAM_NUM || NapiUtils::GetValueType(env, params[0]) != napi_string || - NapiUtils::GetValueType(env, params[1]) != napi_function) { - NETSTACK_LOGE("on off once interface para: [string, function]"); - return NapiUtils::GetUndefined(env); - } - - std::string event = NapiUtils::GetStringFromValueUtf8(env, params[0]); - if (std::find(events.begin(), events.end(), event) == events.end()) { - return NapiUtils::GetUndefined(env); - } - - EventManager *manager = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (manager != nullptr) { - manager->AddListener(env, event, params[1], true, asyncCallback); - } - - return NapiUtils::GetUndefined(env); -} - -napi_value Off(napi_env env, napi_callback_info info, const std::initializer_list &events) -{ - napi_value thisVal = nullptr; - size_t paramsCount = MAX_PARAM_NUM; - napi_value params[MAX_PARAM_NUM] = {nullptr}; - NAPI_CALL(env, napi_get_cb_info(env, info, ¶msCount, params, &thisVal, nullptr)); - - if ((paramsCount != 1 && paramsCount != EVENT_PARAM_NUM) || - NapiUtils::GetValueType(env, params[0]) != napi_string) { - NETSTACK_LOGE("on off once interface para: [string, function?]"); - napi_throw_error(env, std::to_string(PARSE_ERROR_CODE).c_str(), PARSE_ERROR_MSG); - return NapiUtils::GetUndefined(env); - } - - if (paramsCount == EVENT_PARAM_NUM && NapiUtils::GetValueType(env, params[1]) != napi_function) { - NETSTACK_LOGE("on off once interface para: [string, function]"); - napi_throw_error(env, std::to_string(PARSE_ERROR_CODE).c_str(), PARSE_ERROR_MSG); - return NapiUtils::GetUndefined(env); - } - - std::string event = NapiUtils::GetStringFromValueUtf8(env, params[0]); - if (std::find(events.begin(), events.end(), event) == events.end()) { - return NapiUtils::GetUndefined(env); - } - - EventManager *manager = nullptr; - napi_unwrap(env, thisVal, reinterpret_cast(&manager)); - if (manager != nullptr) { - if (paramsCount == EVENT_PARAM_NUM) { - manager->DeleteListener(event, params[1]); - } else { - manager->DeleteListener(event); - } - } - - return NapiUtils::GetUndefined(env); -} - void DefineClass(napi_env env, napi_value exports, const std::initializer_list &properties, const std::string &className) { @@ -470,33 +375,6 @@ napi_value NewInstanceWithSharedManager(napi_env env, napi_callback_info info, c return result; } -napi_value NewInstance(napi_env env, napi_callback_info info, const std::string &className, Finalizer finalizer) -{ - NETSTACK_LOGD("create new instance for %{public}s", className.c_str()); - napi_value thisVal = nullptr; - NAPI_CALL(env, napi_get_cb_info(env, info, nullptr, nullptr, &thisVal, nullptr)); - - auto global = NapiUtils::GetGlobal(env); - napi_value jsConstructor = NapiUtils::GetNamedProperty(env, global, className); - if (NapiUtils::GetValueType(env, jsConstructor) == napi_undefined) { - return nullptr; - } - - napi_value result = nullptr; - NAPI_CALL(env, napi_new_instance(env, jsConstructor, 0, nullptr, &result)); - - auto manager = new EventManager(); - EventManager::SetValid(manager); - if (className == INTERFACE_HTTP_REQUEST || className == INTERFACE_LOCAL_SOCKET || - className == INTERFACE_TLS_SOCKET || className == INTERFACE_WEB_SOCKET) { - NETSTACK_LOGD("create reference for %{public}s", className.c_str()); - manager->CreateEventReference(env, thisVal); - } - napi_wrap(env, result, reinterpret_cast(manager), finalizer, nullptr, nullptr); - - return result; -} - napi_value NewInstanceNoManager(napi_env env, napi_callback_info info, const std::string &name, Finalizer finalizer) { napi_value thisVal = nullptr; diff --git a/utils/napi_utils/src/napi_utils.cpp b/utils/napi_utils/src/napi_utils.cpp index 195b259e909020f5f2d1af4976851892365ed55e..ce551dd7c0f98d8894a8248535c0284d5a04f215 100644 --- a/utils/napi_utils/src/napi_utils.cpp +++ b/utils/napi_utils/src/napi_utils.cpp @@ -667,7 +667,7 @@ void CreateUvQueueWork(napi_env env, void *data, void(handler)(uv_work_t *, int loop, work, [](uv_work_t *) {}, handler, uv_qos_default); if (ret != 0) { NETSTACK_LOGE("uv_queue_work_with_qos error = %{public}d, manual delete", ret); - delete static_cast(work->data); + delete static_cast(work->data); delete work; } }