Pārlūkot izejas kodu

!2 add firewall timeout

chenliangyu 3 mēneši atpakaļ
vecāks
revīzija
35060d5ede
2 mainītis faili ar 31 papildinājumiem un 4 dzēšanām
  1. 25 3
      Framework/spbase/SpEntity.cpp
  2. 6 1
      Module/mod_chromium/ReadMe.md

+ 25 - 3
Framework/spbase/SpEntity.cpp

@@ -38,7 +38,9 @@
 #include "sp_httpDefine.h"
 #include <iostream>
 #include <sstream>
-
+#include <future>
+#include <chrono>
+#include <thread>
 
 
 
@@ -1744,11 +1746,31 @@ ErrorCodeEnum SpEntity::GetToken(CSimpleString &channelId, CSimpleString &token)
 
 ErrorCodeEnum SpEntity::SetNewPathToFirewall(CSimpleString &pszPath)
 {
+	if (pszPath.GetLength() == 0) {
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("SetNewPathToFirewall param error");
+		return Error_Param;
+	}
+
+
 #ifdef _WIN32
-	return sp_AddFirewallRuleByPath(pszPath.GetData()) ? Error_Succeed : Error_Bug;
+	auto addFirewall_worker = [this](std::string path)
+	{
+		return sp_AddFirewallRuleByPath(path.c_str()) ? Error_Succeed : Error_Bug;
+	};
+
+	std::future<ErrorCodeEnum> result = std::async(std::launch::async, addFirewall_worker, pszPath.GetData());
+
+	auto status = result.wait_for(std::chrono::seconds(30));
+	if (status == std::future_status::ready)
+		return result.get();
+	else
+		return Error_TimeOut;
+
+
+
 #else
 	return Error_NotSupport;
-#endif // RVC_OS_WIN
+#endif // RVC_OS_WIN	
 
 	
 }

+ 6 - 1
Module/mod_chromium/ReadMe.md

@@ -22,4 +22,9 @@
 # GetVar
 * {"messageType":13,"transID":310,"name":"TerminalStage"}
 # GetVarAck
-{"messageType":14,"sessionID":-1,"transID":258,"errorCode":0,"value":"M"}
+* {"messageType":14,"sessionID":-1,"transID":258,"errorCode":0,"value":"M"}
+
+# SetVar
+* {"messageType": 11, "transID": 310, "name": "UIState", "value": "M"}
+# SetVarAck
+{"messageType":12,"sessionID":-1,"transID":310,"errorCode":0,"errorMsg":""}