|
|
@@ -769,19 +769,34 @@ ErrorCodeEnum CRemoteControllerCnn::HandleViewEntityConfigReq(const CSmartPointe
|
|
|
}
|
|
|
|
|
|
auto cfgSize = Base_filesize(strCfgPath.GetData());
|
|
|
- int nRetLen = sizeof(RvcViewConfigRet) + cfgSize;
|
|
|
- char* pBuf = new char[nRetLen];
|
|
|
- memset(pBuf, 0, nRetLen);
|
|
|
- RvcViewConfigRet* pRet = (RvcViewConfigRet*)pBuf;
|
|
|
+
|
|
|
+ char* tmpBuf = new char[cfgSize];
|
|
|
+ memset(tmpBuf, 0, cfgSize);
|
|
|
+
|
|
|
|
|
|
- auto readRet = Base_readFile(strCfgPath.GetData(), 0, pRet->ConfigData, cfgSize);
|
|
|
+ auto readRet = Base_readFile(strCfgPath.GetData(), 0, tmpBuf, cfgSize);
|
|
|
if(!readRet.first)
|
|
|
{
|
|
|
pReplyPkg->SetErrMsg(0, 0, SP::Utility::UTF8ToGBK("open entity config file fail").c_str());
|
|
|
LogError(Severity_Low, Error_NotExist, 0, CSimpleStringA::Format("open config [%s] fail", (const char*)strCfgPath));
|
|
|
}
|
|
|
else
|
|
|
- pReplyPkg->AddStruct("ViewCfgA", false, false, (BYTE*)pBuf, nRetLen);
|
|
|
+ {
|
|
|
+ int nRetLen = sizeof(RvcViewConfigRet) + cfgSize * 2; //需自行转换\n和\r\n
|
|
|
+ char* pBuf = new char[nRetLen];
|
|
|
+ memset(pBuf, 0, nRetLen);
|
|
|
+ RvcViewConfigRet* pRet = (RvcViewConfigRet*)pBuf;
|
|
|
+ int dstPos = 0;
|
|
|
+
|
|
|
+ for (auto i = 0; i < cfgSize; i++)
|
|
|
+ {
|
|
|
+ if ((i == 0 && tmpBuf[i] == '\n') || (tmpBuf[i] == '\n' && tmpBuf[i - 1] != '\r'))
|
|
|
+ pRet->ConfigData[dstPos++] = '\r';
|
|
|
+ pRet->ConfigData[dstPos++] = tmpBuf[i];
|
|
|
+ }
|
|
|
+
|
|
|
+ pReplyPkg->AddStruct("ViewCfgA", false, false, (BYTE*)pBuf, dstPos + sizeof(RvcViewConfigRet));
|
|
|
+ }
|
|
|
|
|
|
|
|
|
SendPackage(pReplyPkg);
|
|
|
@@ -1956,19 +1971,35 @@ ErrorCodeEnum CRemoteControllerCnn::HandleViewRunCfgReq(const CSmartPointer<IPac
|
|
|
}
|
|
|
|
|
|
auto cfgSize = Base_filesize(strCfgPath.GetData());
|
|
|
- int nRetLen = sizeof(RvcViewRunCfgRet) + cfgSize;
|
|
|
- char* pBuf = new char[nRetLen];
|
|
|
- memset(pBuf, 0, nRetLen);
|
|
|
- RvcViewRunCfgRet* pRet = (RvcViewRunCfgRet*)pBuf;
|
|
|
|
|
|
- auto readRet = Base_readFile(strCfgPath.GetData(), 0, pRet->ConfigData, cfgSize);
|
|
|
+ char* tmpBuf = new char[cfgSize];
|
|
|
+ memset(tmpBuf, 0, cfgSize);
|
|
|
+
|
|
|
+
|
|
|
+ auto readRet = Base_readFile(strCfgPath.GetData(), 0, tmpBuf, cfgSize);
|
|
|
if (!readRet.first)
|
|
|
{
|
|
|
pReplyPkg->SetErrMsg(0, 0, SP::Utility::UTF8ToGBK("open runcfg fail").c_str());
|
|
|
Dbg("open file [%s] fail", (const char*)strCfgPath);
|
|
|
}
|
|
|
else
|
|
|
- pReplyPkg->AddStruct("VRunCfgA", false, false, (BYTE*)pBuf, nRetLen);
|
|
|
+ {
|
|
|
+ int nRetLen = sizeof(RvcViewRunCfgRet) + cfgSize * 2;
|
|
|
+ char* pBuf = new char[nRetLen];
|
|
|
+ memset(pBuf, 0, nRetLen);
|
|
|
+ RvcViewRunCfgRet* pRet = (RvcViewRunCfgRet*)pBuf;
|
|
|
+
|
|
|
+ int dstPos = 0;
|
|
|
+ for (auto i = 0; i < cfgSize; i++)
|
|
|
+ {
|
|
|
+ if ((i == 0 && tmpBuf[i] == '\n') || (tmpBuf[i] == '\n' && tmpBuf[i - 1] != '\r'))
|
|
|
+ pRet->ConfigData[dstPos++] = '\r';
|
|
|
+ pRet->ConfigData[dstPos++] = tmpBuf[i];
|
|
|
+ }
|
|
|
+
|
|
|
+ pReplyPkg->AddStruct("VRunCfgA", false, false, (BYTE*)pBuf, dstPos + sizeof(RvcViewConfigRet));
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
SendPackage(pReplyPkg);
|
|
|
return Error_Succeed;
|
|
|
@@ -2045,8 +2076,20 @@ ErrorCodeEnum CRemoteControllerCnn::HandleViewInstallLogReq(const CSmartPointer<
|
|
|
} while (nReadLen >0 && nHasRead < nFileSize);
|
|
|
fclose(file);
|
|
|
|
|
|
- pReplyPkg->AddStruct("VPkgLogA", false, false, (BYTE*)pBuf, nRetLen);
|
|
|
+ std::string gbkLogStr = SP::Utility::UTF8ToGBK(pLogData);
|
|
|
+
|
|
|
+ int gbkLen = sizeof(RvcViewInstallLogRet) + gbkLogStr.length();
|
|
|
+ char* gbkBuf = new char[gbkLen];
|
|
|
+ memset(gbkBuf, 0, gbkLen);
|
|
|
+
|
|
|
+ RvcViewInstallLogRet* gbkRet = (RvcViewInstallLogRet*)gbkBuf;
|
|
|
+ gbkRet->TaskID = req.TaskID;
|
|
|
+ memcpy(gbkRet->LogData, gbkLogStr.c_str(), gbkLogStr.length());
|
|
|
+
|
|
|
+
|
|
|
+ pReplyPkg->AddStruct("VPkgLogA", false, false, (BYTE*)gbkRet, gbkLen);
|
|
|
delete[] pBuf;
|
|
|
+ delete[] gbkBuf;
|
|
|
|
|
|
SendPackage(pReplyPkg);
|
|
|
return Error_Succeed;
|