1
Fork 0
mirror of https://github.com/caddyserver/caddy.git synced 2024-12-23 22:27:38 -05:00
caddy/modules/caddyhttp/requestbody/requestbody.go
Matthew Holt 5137859e47 Rename caddy2 -> caddy
Removes the version from the package name
2019-06-14 11:58:28 -06:00

33 lines
761 B
Go

package requestbody
import (
"net/http"
"github.com/caddyserver/caddy"
"github.com/caddyserver/caddy/modules/caddyhttp"
)
func init() {
caddy.RegisterModule(caddy.Module{
Name: "http.middleware.request_body",
New: func() interface{} { return new(RequestBody) },
})
}
// RequestBody is a middleware for manipulating the request body.
type RequestBody struct {
MaxSize int64 `json:"max_size,omitempty"`
}
func (rb RequestBody) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) error {
if r.Body == nil {
return next.ServeHTTP(w, r)
}
if rb.MaxSize > 0 {
r.Body = http.MaxBytesReader(w, r.Body, rb.MaxSize)
}
return next.ServeHTTP(w, r)
}
// Interface guard
var _ caddyhttp.MiddlewareHandler = (*RequestBody)(nil)