fixed gzip middleware not applying when serving static files
This commit is contained in:
		
							parent
							
								
									d92016af81
								
							
						
					
					
						commit
						ab7194a639
					
				| 
						 | 
				
			
			@ -1,3 +1,9 @@
 | 
			
		|||
## v0.23.3 (WIP)
 | 
			
		||||
 | 
			
		||||
- Fixed Gzip middleware not applying when serving static files.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## v0.23.2
 | 
			
		||||
 | 
			
		||||
- Fixed `RecordQuery()` custom struct scanning ([#5958](https://github.com/pocketbase/pocketbase/discussions/5958)).
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -221,23 +221,26 @@ func (w *gzipResponseWriter) Push(target string, opts *http.PushOptions) error {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (w *gzipResponseWriter) ReadFrom(r io.Reader) (n int64, err error) {
 | 
			
		||||
	if w.wroteHeader {
 | 
			
		||||
		w.ResponseWriter.WriteHeader(w.code)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	rw := w.ResponseWriter
 | 
			
		||||
	for {
 | 
			
		||||
		switch rf := rw.(type) {
 | 
			
		||||
		case io.ReaderFrom:
 | 
			
		||||
			return rf.ReadFrom(r)
 | 
			
		||||
		case router.RWUnwrapper:
 | 
			
		||||
			rw = rf.Unwrap()
 | 
			
		||||
		default:
 | 
			
		||||
			return io.Copy(w.ResponseWriter, r)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
// Note: Disable the implementation for now because in case the platform
 | 
			
		||||
// supports the sendfile fast-path it won't run gzipResponseWriter.Write,
 | 
			
		||||
// preventing compression on the fly.
 | 
			
		||||
//
 | 
			
		||||
// func (w *gzipResponseWriter) ReadFrom(r io.Reader) (n int64, err error) {
 | 
			
		||||
// 	if w.wroteHeader {
 | 
			
		||||
// 		w.ResponseWriter.WriteHeader(w.code)
 | 
			
		||||
// 	}
 | 
			
		||||
// 	rw := w.ResponseWriter
 | 
			
		||||
// 	for {
 | 
			
		||||
// 		switch rf := rw.(type) {
 | 
			
		||||
// 		case io.ReaderFrom:
 | 
			
		||||
// 			return rf.ReadFrom(r)
 | 
			
		||||
// 		case router.RWUnwrapper:
 | 
			
		||||
// 			rw = rf.Unwrap()
 | 
			
		||||
// 		default:
 | 
			
		||||
// 			return io.Copy(w.ResponseWriter, r)
 | 
			
		||||
// 		}
 | 
			
		||||
// 	}
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
func (w *gzipResponseWriter) Unwrap() http.ResponseWriter {
 | 
			
		||||
	return w.ResponseWriter
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue