|
@@ -364,14 +364,23 @@ func serviceRPC(h serviceHandler, service string) {
|
|
}
|
|
}
|
|
|
|
|
|
if h.cfg.OnSucceed != nil {
|
|
if h.cfg.OnSucceed != nil {
|
|
- input, err = ioutil.ReadAll(reqBody)
|
|
|
|
|
|
+ tmpfile, err := ioutil.TempFile("", "gogs")
|
|
if err != nil {
|
|
if err != nil {
|
|
- log.GitLogger.Error(2, "fail to read request body: %v", err)
|
|
|
|
|
|
+ log.GitLogger.Error(2, "fail to create temporary file: %v", err)
|
|
h.w.WriteHeader(http.StatusInternalServerError)
|
|
h.w.WriteHeader(http.StatusInternalServerError)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ defer os.Remove(tmpfile.Name())
|
|
|
|
+ defer tmpfile.Close()
|
|
|
|
|
|
- br = bytes.NewReader(input)
|
|
|
|
|
|
+ _, err = io.Copy(tmpfile, reqBody)
|
|
|
|
+ if err != nil {
|
|
|
|
+ log.GitLogger.Error(2, "fail to save request body: %v", err)
|
|
|
|
+ h.w.WriteHeader(http.StatusInternalServerError)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ br = tmpfile
|
|
} else {
|
|
} else {
|
|
br = reqBody
|
|
br = reqBody
|
|
}
|
|
}
|