From a0c407684e7e1e057ac05c6789fa90ecef10ff0b Mon Sep 17 00:00:00 2001 From: kun chen Date: Mon, 7 Jul 2025 15:18:02 +0800 Subject: [PATCH 1/2] add socket buf size log Signed-off-by: kun chen --- src/common/base.cpp | 17 +++++++++++++++++ src/common/base.h | 1 + src/common/session.cpp | 3 +++ src/host/host_usb.cpp | 2 ++ 4 files changed, 23 insertions(+) diff --git a/src/common/base.cpp b/src/common/base.cpp index 4b4d2ea7..d6e6e6d1 100644 --- a/src/common/base.cpp +++ b/src/common/base.cpp @@ -2381,6 +2381,23 @@ void CloseOpenFd(void) #endif } + int GetSockSendBufSize(int socket) + { + int error = -1; + int size = -1; + socklen_t len = sizeof(int); + int rc = getsockopt(socket, SOL_SOCKET, SO_SNDBUF, (char *)&size, &len); + if (rc < 0) { +#ifdef _WIN32 + error = WSAGetLastError(); +#else + error = errno; +#endif + WRITE_LOG(LOG_DEBUG, "getsockopt send buf size error %d", error); + } + return size; + } + bool IsValidIpv4(const std::string& ip) { std::vector segments; diff --git a/src/common/base.h b/src/common/base.h index a0d15aa7..c04a7e5c 100644 --- a/src/common/base.h +++ b/src/common/base.h @@ -254,6 +254,7 @@ namespace Base { int ReadFromFd(int fd, void *buf, size_t count); int WriteToFd(int fd, const void *buf, size_t count); + int GetSockSendBufSize(int socket); #define DAEOMN_AUTH_SUCCESS "SUCCESS" #define DAEOMN_UNAUTHORIZED "DAEMON_UNAUTH" diff --git a/src/common/session.cpp b/src/common/session.cpp index e3e7747a..01a674fe 100755 --- a/src/common/session.cpp +++ b/src/common/session.cpp @@ -1575,6 +1575,9 @@ bool HdcSessionBase::DispatchTaskData(HSession hSession, const uint32_t channelI } if (!hTaskInfo || hTaskInfo->taskStop || hTaskInfo->taskFree) { WRITE_LOG(LOG_WARN, "hTaskInfo null cid:%u sid:%u command:%u", channelId, hSession->sessionId, command); + if (hTaskInfo) { + WRITE_LOG(LOG_WARN, "hTaskInfo taskStop:%d taskFree:%d", hTaskInfo->taskStop, hTaskInfo->taskFree); + } break; } ret = RedirectToTask(hTaskInfo, hSession, channelId, command, payload, payloadSize); diff --git a/src/host/host_usb.cpp b/src/host/host_usb.cpp index 0b3777d7..c1a955cd 100644 --- a/src/host/host_usb.cpp +++ b/src/host/host_usb.cpp @@ -516,6 +516,8 @@ int HdcHostUSB::UsbToHdcProtocol(uv_stream_t *stream, uint8_t *appendData, int d errno, buf, childRet, retryTimes, index, dataSize); Base::DispUvStreamInfo(stream, "hostusb select failed"); DispAllLoopStatus("hostusb select failed-" + std::to_string(hSession->sessionId)); + int sendBufSize = Base::GetSockSendBufSize(fd); + WRITE_LOG(LOG_INFO, "socket %d send buf size %d", fd, sendBufSize); if (retryTimes >= maxRetryTimes) { break; } -- Gitee From 147e07d3a8ea012a5b3bd454eff05e356d4cd5c9 Mon Sep 17 00:00:00 2001 From: kun chen Date: Tue, 8 Jul 2025 14:35:24 +0800 Subject: [PATCH 2/2] add socket buf size log Signed-off-by: kun chen --- src/common/base.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/base.cpp b/src/common/base.cpp index d6e6e6d1..7d099786 100644 --- a/src/common/base.cpp +++ b/src/common/base.cpp @@ -2385,8 +2385,8 @@ void CloseOpenFd(void) { int error = -1; int size = -1; - socklen_t len = sizeof(int); - int rc = getsockopt(socket, SOL_SOCKET, SO_SNDBUF, (char *)&size, &len); + socklen_t len = static_cast(sizeof(int)); + int rc = getsockopt(socket, SOL_SOCKET, SO_SNDBUF, reinterpret_cast(&size), &len); if (rc < 0) { #ifdef _WIN32 error = WSAGetLastError(); -- Gitee