package mux import ( "io" "net/http" ) type optionsHandler struct{} func (optionsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "0") if r.ContentLength != 0 { // Read up to 4KB of OPTIONS body (as mentioned in the // spec as being reserved for future use), but anything // over that is considered a waste of server resources // (or an attack) and we abort and close the connection, // courtesy of MaxBytesReader's EOF behavior. mb := http.MaxBytesReader(w, r.Body, 4<<10) io.Copy(io.Discard, mb) } }