forked from wgroeneveld/go-jamming
fix missing return statements and additional broken xml logging
This commit is contained in:
parent
ceaeaf5ada
commit
2f6e4992a4
|
@ -15,16 +15,18 @@ func HandlePost(conf *common.Config) http.HandlerFunc {
|
||||||
return func(w http.ResponseWriter, r *http.Request) {
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
body, err := ioutil.ReadAll(r.Body)
|
body, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pingbackError(w, "Unable to read request body")
|
pingbackError(w, "Unable to read request body", []byte("<not-parsaeble>"))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
rpc := &XmlRPCMethodCall{}
|
rpc := &XmlRPCMethodCall{}
|
||||||
err = xml.Unmarshal(body, rpc)
|
err = xml.Unmarshal(body, rpc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pingbackError(w, "Unable to unmarshal XMLRPC request body")
|
pingbackError(w, "Unable to unmarshal XMLRPC request body", body)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !validate(rpc, conf) {
|
if !validate(rpc, conf) {
|
||||||
pingbackError(w, "malformed pingback request")
|
pingbackError(w, "malformed pingback request", body)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +61,7 @@ func pingbackSuccess(w http.ResponseWriter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// according to the XML-RPC spec, always return a 200, but encode it into the XML.
|
// according to the XML-RPC spec, always return a 200, but encode it into the XML.
|
||||||
func pingbackError(w http.ResponseWriter, msg string) {
|
func pingbackError(w http.ResponseWriter, msg string, body []byte) {
|
||||||
xml := `<?xml version="1.0" encoding="UTF-8"?>
|
xml := `<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<methodResponse>
|
<methodResponse>
|
||||||
<fault>
|
<fault>
|
||||||
|
@ -89,7 +91,7 @@ func pingbackError(w http.ResponseWriter, msg string) {
|
||||||
</value>
|
</value>
|
||||||
</fault>
|
</fault>
|
||||||
</methodResponse>`
|
</methodResponse>`
|
||||||
log.Error().Str("msg", msg).Msg("Pingback receive went wrong")
|
log.Error().Str("msg", msg).Str("xml", string(body)).Msg("Pingback receive went wrong")
|
||||||
w.WriteHeader(200)
|
w.WriteHeader(200)
|
||||||
w.Write([]byte(xml))
|
w.Write([]byte(xml))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue