// +build ignore,OMIT

package main

import (
	"fmt"
	"net/http"
)

func authRequired(f http.HandlerFunc) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		if r.FormValue("user") == "" {
			http.Error(w, "unknown user", http.StatusForbidden)
			return
		}
		f(w, r)
	}
}

var hiHandler = authRequired(
	func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hi, %v", r.FormValue("user"))
	},
)

func main() {
	http.HandleFunc("/hi", hiHandler)
	http.ListenAndServe(":8080", nil)
}
