This commit is contained in:
TsMask
2023-08-31 16:50:51 +08:00
3 changed files with 49 additions and 18 deletions

View File

@@ -399,15 +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
}
}
services.ResponseStatusOK204NoContent(w)
services.ResponseHtmlContent(w, http.StatusOK, pathFile)
}

View File

@@ -1756,6 +1756,18 @@ func XormGetTraceData(id int) (*TraceData, error) {
return result, nil
}
func XormUpdateTraceData(id int, data *TraceData) (int64, error) {
affected, err := xEngine.Table("trace_data").
Where("id=?", id).
Update(data)
if err != nil {
log.Error("Failed to update table trace_data:", err)
return 0, err
}
return affected, nil
}
func XormGetTraceRawMsg(id int) (int64, []byte, error) {
var rawMsg []byte
var timestamp int64

View File

@@ -458,7 +458,7 @@ func CheckFrontValidRequest(w http.ResponseWriter, r *http.Request) (string, err
// response 414-4 uri too long ? (optional)
// todo ... ?
if bytes.Count([]byte(r.RequestURI), nil) > config.GetUriMaxLenFromConfig() {
err = errors.New("Request Uri too long")
err = errors.New("request Uri too long")
log.Errorf("Request Uri too long: bytes=%d, MaxLen=%d", bytes.Count([]byte(r.RequestURI), nil), config.GetUriMaxLenFromConfig())
ResponseRequestURITooLong414UriTooLong(w)
return token, err
@@ -479,7 +479,7 @@ func CheckFrontValidRequest(w http.ResponseWriter, r *http.Request) (string, err
// 401-1 response
if config.GetYamlConfig().Auth.Token && IsLocalhost(r.RemoteAddr) == false {
token, ret = oauth.IsCarriedToken(r)
if ret == false {
if !ret {
err = errors.New("accessToken is not carried")
log.Error(err)
ResponseUnauthorized401AccessTokenNotCarried(w)
@@ -508,7 +508,7 @@ func CheckFrontValidRequest(w http.ResponseWriter, r *http.Request) (string, err
vars := mux.Vars(r)
apiVer := vars["apiVersion"]
if apiVer != global.ApiVersionV1 {
err = errors.New("Uri is invalid")
err = errors.New("uri is invalid")
log.Error(err)
ResponseNotFound404UriNotExist(w, r)
return token, err
@@ -527,7 +527,7 @@ func CheckExtValidRequest(w http.ResponseWriter, r *http.Request) (string, error
// 401-1 response
if config.GetYamlConfig().Auth.Token {
token, ret = oauth.IsCarriedToken(r)
if ret == false {
if !ret {
err = errors.New("accessToken is not carried")
log.Error(err)
ResponseUnauthorized401AccessTokenNotCarried(w)
@@ -939,7 +939,6 @@ func ResponseUploadFile(w http.ResponseWriter, code int, params map[string]strin
w.Header().Set("Content-Type", writer.FormDataContentType())
w.WriteHeader(code)
w.Write(body.Bytes())
return
}
func ResponseFile(w http.ResponseWriter, code int, filePath string) {
@@ -953,8 +952,6 @@ func ResponseFile(w http.ResponseWriter, code int, filePath string) {
w.Header().Set("Content-Type", "application/octet-stream")
w.WriteHeader(code)
w.Write(fileBytes)
return
}
func ResponseFileWithNameAndMD5(w http.ResponseWriter, code int, fileName, path, md5Sum string) {
@@ -973,8 +970,20 @@ func ResponseFileWithNameAndMD5(w http.ResponseWriter, code int, fileName, path,
w.Header().Set("MD5-Sum", md5Sum)
w.WriteHeader(code)
w.Write(fileBytes)
}
return
func ResponseHtmlContent(w http.ResponseWriter, code int, filePath string) {
htmlContent, err := os.ReadFile(filePath)
if err != nil {
log.Error("Failed to ReadFile:", err)
ResponseInternalServerError500ProcessError(w, err)
return
}
SetCommonResponseHeader(w)
w.Header().Set("Content-Type", "text/html")
w.WriteHeader(code)
w.Write(htmlContent)
}
// RouterItem 路由项