|
@@ -3779,14 +3779,19 @@ ErrorCodeEnum CUpgradeTaskFSM::UnzipPack(const char* unZipPackName)
|
|
|
}
|
|
|
}
|
|
|
// 创建临时解压目录
|
|
|
- if (CreateDirA(strUnzipDir.GetData(), false)) {
|
|
|
- // 创建临时解压目录
|
|
|
+ if (!CreateDirA(strUnzipDir.GetData(), false)) {
|
|
|
+ // 创建临时解压目录失败
|
|
|
Dbg("unzipPack is fail,create temp unzip dir [%s] fail,err=%d", strUnzipDir.GetData(), GetLastError());
|
|
|
return Error_Unexpect;
|
|
|
}
|
|
|
|
|
|
- // 解压
|
|
|
+ if (changeFileAtt(strZipFile.GetData())!=0) {
|
|
|
+ //改变文件属性
|
|
|
+ Dbg("unzipPack is fail,changeFileAtt zip [%s] fail,err=%d", strZipFile.GetData(), GetLastError());
|
|
|
+ return Error_Unexpect;
|
|
|
+ }
|
|
|
|
|
|
+ // 解压
|
|
|
string zipFileStr = strZipFile.GetData();
|
|
|
string zipTempDir = strUnzipDir.GetData();
|
|
|
|
|
@@ -5134,6 +5139,27 @@ bool CUpgradeTaskFSM::isWork()
|
|
|
|
|
|
}
|
|
|
|
|
|
+int CUpgradeTaskFSM::changeFileAtt(const char* path)
|
|
|
+ {
|
|
|
+ struct stat attr_of_del;
|
|
|
+ if (lstat(path, &attr_of_del) == 0)
|
|
|
+ {
|
|
|
+ //修改为775属性
|
|
|
+ mode_t f_attrib = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH;
|
|
|
+ if (chmod(path, f_attrib) != 0)
|
|
|
+ {
|
|
|
+ Dbg("set file attribute is fail,errno=%d, file=%s", errno, path);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ Dbg("get file attribute is fail,errno=%d, file=%s", errno, path);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
void CUpgradeTaskFSM::OnStateTrans(int iSrcState, int iDstState)
|
|
|
{
|
|
|
Dbg("trans from %s to %s", GetStateName(iSrcState), GetStateName(iDstState));
|
|
@@ -5585,7 +5611,7 @@ void CUpgradeTaskFSM::s3_on_entry()
|
|
|
ErrorCodeEnum rc = m_pEntity->GetFunction()->PostThreadPoolTask(qTask);
|
|
|
if(rc!=Error_Succeed){
|
|
|
Dbg("s3 create QueryNewTask fail,wait 4 min retry ,err=%d",(int)rc);
|
|
|
- ScheduleTimer(1, 4*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
+ ScheduleTimer(1, 1*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -5613,7 +5639,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
|
|
|
m_queryNewTaskCount=0;
|
|
|
}
|
|
|
Dbg("QueryNewTask succ,no new task, wait 4 min retry");
|
|
|
- ScheduleTimer(1, 4*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
+ ScheduleTimer(1, 1*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
}else{
|
|
|
//写入运行时文件
|
|
|
bool isWriteOk=false;
|
|
@@ -5659,7 +5685,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
|
|
|
}else{
|
|
|
//查询失败
|
|
|
Dbg("QueryNewTask fail,wait 4 min retry");
|
|
|
- ScheduleTimer(1, 4*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
+ ScheduleTimer(1, 1*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
}
|
|
|
}
|
|
|
else if(event->iEvt == EVT_TIMER){
|
|
@@ -5670,7 +5696,7 @@ unsigned int CUpgradeTaskFSM::s3_on_event(FSMEvent* event)
|
|
|
ErrorCodeEnum rc = m_pEntity->GetFunction()->PostThreadPoolTask(nTask);
|
|
|
if(rc!=Error_Succeed){
|
|
|
Dbg("s3 create QueryNewTask fail,wait 4 min retry ,err=%d",(int)rc);
|
|
|
- ScheduleTimer(1, 4*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
+ ScheduleTimer(1, 1*60*1000);//等待4分钟后再次查询是否有新任务
|
|
|
}
|
|
|
}
|
|
|
}
|