Browse Source

#IQRV #comment [Module] Ups::shutdown 接口统一处理负数

gifur 4 years ago
parent
commit
ab03ca62e3
2 changed files with 8 additions and 1 deletions
  1. 7 1
      Module/mod_ups/UpsFSM.cpp
  2. 1 0
      Module/mod_ups/UpsFSM.h

+ 7 - 1
Module/mod_ups/UpsFSM.cpp

@@ -143,10 +143,16 @@ unsigned int CUpsFSM::s2_on_event(FSMEvent* pEvt)
 int CUpsFSM::ShutDown(SpReqAnsContext<UpsService_Shutdown_Req,UpsService_Shutdown_Ans>::Pointer ctx)
 {
 	LOG_FUNCTION();
+
 	UpsStatusEnum eUpsStatus;
     Dbg("shutdown time: %d, uptime: %d", ctx->Req.ShutdownTime, ctx->Req.UpTime);
 	ErrorCodeEnum err = m_hDevHelper->GetDevStatus(eUpsStatus);
-	Dbg("(%d)status:[%d],%d,%d",err,eUpsStatus,ctx->Req.ShutdownTime,ctx->Req.UpTime);
+	Dbg("(%s)status:[%d],%d,%d",SpStrError(err), eUpsStatus, ctx->Req.ShutdownTime, ctx->Req.UpTime);
+    if (ctx->Req.ShutdownTime < 0 || ctx->Req.UpTime < 0) {
+        Dbg("error param");
+        ctx->Answer(Error_Param);
+        return 2; //do not jump
+    }
 	err = m_hDevHelper->Shutdown(ctx->Req.ShutdownTime,ctx->Req.UpTime);
 	if (err == Error_Succeed)
 	{

+ 1 - 0
Module/mod_ups/UpsFSM.h

@@ -72,6 +72,7 @@ public:
 		FSM_RULE_ENTRY(s0, s1, USER_EVT_SHUTDOWN, 0)
 		FSM_RULE_ENTRY(s0, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
 		FSM_RULE_ENTRY(s1, s2, USER_EVT_SHUTDOWN_FINISHED, 1)
+		FSM_RULE_ENTRY(s1, s0, USER_EVT_SHUTDOWN_FINISHED, 2)
 		FSM_RULE_ENTRY(s1, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
 		FSM_RULE_ENTRY(s2, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
 		FSM_RULE_ENTRY(s2, s0, USER_EVT_CHECK_FINISHED, 0)