From 5ef77d4b202100b49e10341bebaf8e2cfc68e7f7 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sat, 11 Jun 2022 03:27:01 +0800 Subject: [PATCH] =?UTF-8?q?fix.=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=A8=A1=E6=8B=9F=E5=99=A8socket=E6=88=AA=E5=9B=BE=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/826 fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/820 --- src/MeoAssistant/Controller.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/MeoAssistant/Controller.cpp b/src/MeoAssistant/Controller.cpp index 616429a7fe..390589a364 100644 --- a/src/MeoAssistant/Controller.cpp +++ b/src/MeoAssistant/Controller.cpp @@ -285,6 +285,7 @@ std::optional> asst::Controller::call_command(const s select(static_cast(m_server_sock) + 1, &fdset, NULL, NULL, &select_timeout); if (FD_ISSET(m_server_sock, &fdset)) { SOCKET client_sock = ::accept(m_server_sock, NULL, NULL); + setsockopt(client_sock, SOL_SOCKET, SO_RCVTIMEO, (char*)&select_timeout, sizeof(int)); int recv_size = 0; do { recv_size = ::recv(client_sock, (char*)m_socket_buffer.get(), SocketBuffSize, NULL); @@ -340,7 +341,7 @@ std::optional> asst::Controller::call_command(const s else { // failed to create child process return std::nullopt; - } +} #endif Log.trace("Call `", cmd, "` ret", exit_ret, ", output size:", pipe_data.size());