a more stupid way of doing middle chaining, but at least it is clearer.

This commit is contained in:
fiatjaf
2024-09-26 09:56:42 -03:00
parent 60116e36fe
commit ed270747af
3 changed files with 18 additions and 12 deletions

24
main.go
View File

@@ -144,15 +144,21 @@ func main() {
mux.HandleFunc("/{code}", renderEvent)
mux.HandleFunc("/{$}", renderHomepage)
var mainHandler http.Handler = relay
// apply http middlewares
for _, middleware := range []func(http.Handler) http.Handler{
cors.Default().Handler,
loggingMiddleware,
agentBlock,
cloudflareBlock,
} {
mainHandler = middleware(mainHandler)
corsH := cors.Default()
corsM := func(next http.HandlerFunc) http.HandlerFunc {
return corsH.Handler(next).ServeHTTP
}
var mainHandler http.HandlerFunc = func(w http.ResponseWriter, r *http.Request) {
cloudflareBlock(
agentBlock(
loggingMiddleware(
corsM(
relay.ServeHTTP,
),
),
),
)(w, r)
}
log.Print("listening at http://0.0.0.0:" + s.Port)