@@ -2,6 +2,7 @@ package serverHandler
22
33import (
44 "mjpclab.dev/ghfs/src/middleware"
5+ "mjpclab.dev/ghfs/src/serverCompress"
56 "mjpclab.dev/ghfs/src/serverLog"
67 "net/http"
78)
@@ -15,23 +16,27 @@ type preprocessHandler struct {
1516func (pph preprocessHandler ) ServeHTTP (w http.ResponseWriter , r * http.Request ) {
1617 logRequest (pph .logger , r )
1718
19+ rw := serverCompress .NewResponseWriter (w , r )
20+
1821 if len (pph .preMiddlewares ) > 0 {
1922 middlewareContext := & middleware.Context {
2023 PrefixReqPath : r .URL .RawPath , // init by pathTransformHandler
2124 VhostReqPath : r .URL .Path ,
2225 Logger : pph .logger ,
2326 }
2427 for i := range pph .preMiddlewares {
25- processResult := pph .preMiddlewares [i ](w , r , middlewareContext )
28+ processResult := pph .preMiddlewares [i ](rw , r , middlewareContext )
2629 if processResult == middleware .Processed {
30+ rw .Close ()
2731 return
2832 } else if processResult == middleware .SkipRests {
2933 break
3034 }
3135 }
3236 }
3337
34- pph .nextHandler .ServeHTTP (w , r )
38+ pph .nextHandler .ServeHTTP (rw , r )
39+ rw .Close ()
3540}
3641
3742func newPreprocessHandler (logger * serverLog.Logger , preMiddlewares []middleware.Middleware , nextHandler http.Handler ) http.Handler {
0 commit comments