Return error for unknown header

This commit is contained in:
Martin Polden 2015-09-17 22:39:12 +02:00
parent ef399116f9
commit 891312f1f8
1 changed files with 13 additions and 0 deletions

View File

@ -116,6 +116,11 @@ func (a *API) handleError(w http.ResponseWriter, err error) {
io.WriteString(w, "Internal server error")
}
func handleUnknownHeader(w http.ResponseWriter, key string) {
w.WriteHeader(http.StatusBadRequest)
io.WriteString(w, "Bad request: Unknown header: "+key)
}
func (a *API) DefaultHandler(w http.ResponseWriter, r *http.Request) {
cmd := cmdFromQueryParams(r.URL.Query())
funcMap := template.FuncMap{"ToLower": strings.ToLower}
@ -148,6 +153,10 @@ func (a *API) JSONHandler(w http.ResponseWriter, r *http.Request) {
key = IP_HEADER
}
value := map[string]string{key: r.Header.Get(key)}
if value[key] == "" {
handleUnknownHeader(w, key)
return
}
b, err := json.MarshalIndent(value, "", " ")
if err != nil {
a.handleError(w, err)
@ -162,6 +171,10 @@ func (a *API) CLIHandler(w http.ResponseWriter, r *http.Request) {
key = IP_HEADER
}
value := r.Header.Get(key)
if value == "" {
handleUnknownHeader(w, key)
return
}
if !strings.HasSuffix(value, "\n") {
value += "\n"
}