From 109a73ffee5234bd68f3f28ba542d317f25a2640 Mon Sep 17 00:00:00 2001 From: hmilylmk Date: Thu, 15 Dec 2022 11:02:09 +0800 Subject: [PATCH] dsoftbus: sync server error code to client * when pkgname is "", server will be failed in register proxy function. But this error code not sync to client. Which will make interface behavior inconsistently. Signed-off-by: hmilylmk --- .../src/softbus_server_proxy_frame.cpp | 28 +++++++++++++++---- .../src/softbus_server_proxy_standard.cpp | 2 +- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/sdk/frame/standard/src/softbus_server_proxy_frame.cpp b/sdk/frame/standard/src/softbus_server_proxy_frame.cpp index 6faa3f10..cf1a56f7 100644 --- a/sdk/frame/standard/src/softbus_server_proxy_frame.cpp +++ b/sdk/frame/standard/src/softbus_server_proxy_frame.cpp @@ -61,11 +61,20 @@ static int InnerRegisterService(void) return SOFTBUS_ERR; } for (uint32_t i = 0; i < clientNameNum; i++) { - while (serverProxyFrame->SoftbusRegisterService(clientName[i], nullptr) != SOFTBUS_OK) { +#define RETRY_NUMS 5 + int retry = RETRY_NUMS; +#undef RETRY_NUMS + int ret = SOFTBUS_ERR; + while (ret != SOFTBUS_OK && retry) { + ret = serverProxyFrame->SoftbusRegisterService(clientName[i], nullptr); SoftBusSleepMs(WAIT_SERVER_READY_INTERVAL); - continue; + retry--; + } + if (ret != SOFTBUS_OK) { + SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s softbus server register service failed!\n", clientName[i]); + SoftBusFree(clientName[i]); + return SOFTBUS_ERR; } - SoftBusFree(clientName[i]); } int32_t ret = ReCreateSessionServerToServer(); if (ret != SOFTBUS_OK) { @@ -159,9 +168,18 @@ int ClientRegisterService(const char *pkgName) SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "serverProxyFrame is nullptr!"); return SOFTBUS_INVALID_PARAM; } - while (serverProxyFrame->SoftbusRegisterService(pkgName, nullptr) != SOFTBUS_OK) { +#define RETRY_NUMS 5 + int retry = RETRY_NUMS; +#undef RETRY_NUMS + int ret = SOFTBUS_ERR; + while (ret != SOFTBUS_OK && retry) { + ret = serverProxyFrame->SoftbusRegisterService(pkgName, nullptr); SoftBusSleepMs(WAIT_SERVER_READY_INTERVAL); - continue; + retry--; + } + if (ret != SOFTBUS_OK) { + SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "%s softbus server register service failed!\n", pkgName); + return SOFTBUS_ERR; } SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_INFO, "%s softbus server register service success!\n", pkgName); diff --git a/sdk/frame/standard/src/softbus_server_proxy_standard.cpp b/sdk/frame/standard/src/softbus_server_proxy_standard.cpp index 63c9079a..f266650b 100644 --- a/sdk/frame/standard/src/softbus_server_proxy_standard.cpp +++ b/sdk/frame/standard/src/softbus_server_proxy_standard.cpp @@ -106,7 +106,7 @@ int32_t SoftBusServerProxyFrame::SoftbusRegisterService(const char *clientPkgNam SoftBusLog(SOFTBUS_LOG_COMM, SOFTBUS_LOG_ERROR, "SoftbusRegisterService read serverRet failed!"); return SOFTBUS_ERR; } - return SOFTBUS_OK; + return serverRet; } int32_t SoftBusServerProxyFrame::CreateSessionServer(const char *pkgName, const char *sessionName) -- Gitee