1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-06-28 15:27:43 +00:00

Fix backend error handling, maybe

This commit is contained in:
Kane York 2016-01-03 13:50:33 -08:00
parent c634e50b5d
commit 41a40d360d

View file

@ -115,10 +115,13 @@ func HTTPBackendUncachedPublish(w http.ResponseWriter, r *http.Request) {
} }
// ErrForwardedFromBackend is an error returned by the backend server. // ErrForwardedFromBackend is an error returned by the backend server.
type ErrForwardedFromBackend string type ErrForwardedFromBackend struct {
JSONError interface{}
}
func (bfe ErrForwardedFromBackend) Error() string { func (bfe ErrForwardedFromBackend) Error() string {
return string(bfe) bytes, _ := json.Marshal(bfe)
return string(bytes)
} }
// ErrAuthorizationNeeded is emitted when the backend replies with HTTP 401. // ErrAuthorizationNeeded is emitted when the backend replies with HTTP 401.
@ -174,7 +177,12 @@ func SendRemoteCommand(remoteCommand, data string, auth AuthInfo) (responseStr s
return "", ErrAuthorizationNeeded return "", ErrAuthorizationNeeded
} else if resp.StatusCode != 200 { } else if resp.StatusCode != 200 {
if resp.Header.Get("Content-Type") == "application/json" { if resp.Header.Get("Content-Type") == "application/json" {
return "", ErrForwardedFromBackend(responseStr) var err2 ErrForwardedFromBackend
err := json.Unmarshal(respBytes, &err2.JSONError)
if err != nil {
return "", fmt.Errorf("error decoding json error from backend: %v | %s", err, responseStr)
}
return "", err2
} }
return "", httpError(resp.StatusCode) return "", httpError(resp.StatusCode)
} }