mirror of https://github.com/Xhofe/alist
* chore(webdav): fix warnings in HttpServe * fix(webdav): HttpServe memory leakpull/7132/head
parent
ba716ae325
commit
34ada81582
|
@ -87,9 +87,9 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request, name string, modTime time
|
||||||
sendSize := size
|
sendSize := size
|
||||||
var sendContent io.ReadCloser
|
var sendContent io.ReadCloser
|
||||||
ranges, err := http_range.ParseRange(rangeReq, size)
|
ranges, err := http_range.ParseRange(rangeReq, size)
|
||||||
switch err {
|
switch {
|
||||||
case nil:
|
case err == nil:
|
||||||
case http_range.ErrNoOverlap:
|
case errors.Is(err, http_range.ErrNoOverlap):
|
||||||
if size == 0 {
|
if size == 0 {
|
||||||
// Some clients add a Range header to all requests to
|
// Some clients add a Range header to all requests to
|
||||||
// limit the size of the response. If the file is empty,
|
// limit the size of the response. If the file is empty,
|
||||||
|
@ -105,7 +105,7 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request, name string, modTime time
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if sumRangesSize(ranges) > size || size < 0 {
|
if sumRangesSize(ranges) > size {
|
||||||
// The total number of bytes in all the ranges is larger than the size of the file
|
// The total number of bytes in all the ranges is larger than the size of the file
|
||||||
// or unknown file size, ignore the range request.
|
// or unknown file size, ignore the range request.
|
||||||
ranges = nil
|
ranges = nil
|
||||||
|
@ -174,6 +174,7 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request, name string, modTime time
|
||||||
pw.Close()
|
pw.Close()
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
defer sendContent.Close()
|
||||||
|
|
||||||
w.Header().Set("Accept-Ranges", "bytes")
|
w.Header().Set("Accept-Ranges", "bytes")
|
||||||
if w.Header().Get("Content-Encoding") == "" {
|
if w.Header().Get("Content-Encoding") == "" {
|
||||||
|
@ -192,7 +193,6 @@ func ServeHTTP(w http.ResponseWriter, r *http.Request, name string, modTime time
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//defer sendContent.Close()
|
|
||||||
}
|
}
|
||||||
func ProcessHeader(origin, override http.Header) http.Header {
|
func ProcessHeader(origin, override http.Header) http.Header {
|
||||||
result := http.Header{}
|
result := http.Header{}
|
||||||
|
|
Loading…
Reference in New Issue