From ce869ecfb395f3f188cc20248cdfdeead9829dd7 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 15 Aug 2023 12:37:08 +0800 Subject: [PATCH] update --- src/main_control_service.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main_control_service.cpp b/src/main_control_service.cpp index b2e0c35..685764a 100644 --- a/src/main_control_service.cpp +++ b/src/main_control_service.cpp @@ -62,11 +62,28 @@ void MainControlService::initialize() { m_iflytopwsService->onMessage.connect([this](weak_ptr webSocket, json& cmd, json& receipt) { processFrontEndMessage(webSocket, cmd, receipt); }); m_iflytopwsService->onUdpCmdMessage.connect([this](struct sockaddr_in* from, char* data, size_t len) { // - string retmsg; - bool suc = m_zcanhost->execcmd(string(data, len), retmsg); - string retmsgstr = fmt::format("{},{}", suc ? "suc" : "fail", retmsg); - m_iflytopwsService->sendToUDP(from, retmsgstr.c_str(), retmsgstr.size()); + for (size_t i = 0; i < len; i++) { + if (data[i] == '\r' || data[i] == '\n') { + data[i] = '\0'; + } + } + bool execsuc = false; + for (size_t i = 0; i < len; i++) { + if (data[i] != '\0') { + int inext = strlen(&data[i]) + i; + { + string retmsg; + execsuc = m_zcanhost->execcmd(string(&data[i]), retmsg); + string retmsgstr = fmt::format("{},{}", execsuc ? "suc" : "fail", retmsg); + m_iflytopwsService->sendToUDP(from, retmsgstr.c_str(), retmsgstr.size()); + } + i = inext; + if (!execsuc) { + break; + } + } + } }); m_iflytopwsService->startListen();