diff --git a/features/trace/trace.go b/features/trace/trace.go index 05651bbd..ddeb472e 100644 --- a/features/trace/trace.go +++ b/features/trace/trace.go @@ -399,23 +399,25 @@ func ParseRawMsg2Html(w http.ResponseWriter, r *http.Request) { return } log.Trace("traceData:", traceData) - htmlFile := fmt.Sprintf("traceDecMessage-%d-%d.html", traceData.TaskID, traceData.ID) - pathFile := config.GetYamlConfig().OMC.FrontTraceDir + "/" + htmlFile - command := fmt.Sprintf("ipdata2html -f %s -t %d -i N%d -d %x", pathFile, traceData.Timestamp, traceData.IfType, traceData.RawMsg) - out, err := run.ExecCmd(command, "/") - log.Tracef("Exec output: %v", string(out)) - if err != nil { - log.Errorf("Faile to ipdate2html:", err) - services.ResponseInternalServerError500ProcessError(w, err) - return + pathFile := traceData.DecMsg + if traceData.DecMsg == "" { + htmlFile := fmt.Sprintf("traceDecMessage-%d-%d.html", traceData.TaskID, traceData.ID) + pathFile = config.GetYamlConfig().OMC.FrontTraceDir + "/" + htmlFile + command := fmt.Sprintf("ipdata2html -f %s -t %d -i N%d -d %x", pathFile, traceData.Timestamp, traceData.IfType, traceData.RawMsg) + out, err := run.ExecCmd(command, "/") + log.Tracef("Exec output: %v", string(out)) + if err != nil { + log.Errorf("Faile to ipdate2html:", err) + services.ResponseInternalServerError500ProcessError(w, err) + return + } + traceData.DecMsg = pathFile + _, err = dborm.XormUpdateTraceData(id, traceData) + if err != nil { + log.Errorf("Faile to XormUpdateTraceData:", err) + services.ResponseInternalServerError500ProcessError(w, err) + return + } } - traceData.DecMsg = pathFile - _, err = dborm.XormUpdateTraceData(id, traceData) - if err != nil { - log.Errorf("Faile to XormUpdateTraceData:", err) - services.ResponseInternalServerError500ProcessError(w, err) - return - } - services.ResponseHtmlContent(w, http.StatusOK, pathFile) }