move protocol-related code into internal/protocols (#2572)

This commit is contained in:
Alessandro Ros 2023-10-26 21:46:18 +02:00 committed by GitHub
parent 3ebc585539
commit 99bc327d67
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
126 changed files with 73 additions and 73 deletions

View file

@ -0,0 +1,27 @@
package httpserv
import (
"fmt"
"net/http"
"os"
"runtime"
)
// exit when there's a panic inside the HTTP handler.
// https://github.com/golang/go/issues/16542
type handlerExitOnPanic struct {
http.Handler
}
func (h *handlerExitOnPanic) ServeHTTP(w http.ResponseWriter, r *http.Request) {
defer func() {
err := recover()
if err != nil {
buf := make([]byte, 1<<20)
n := runtime.Stack(buf, true)
fmt.Fprintf(os.Stderr, "panic: %v\n\n%s", err, buf[:n])
os.Exit(1)
}
}()
h.Handler.ServeHTTP(w, r)
}