aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrégoire Duchêne <gduchene@awhk.org>2021-07-04 17:13:44 +0100
committerGrégoire Duchêne <gduchene@awhk.org>2021-07-04 17:13:44 +0100
commit03f9f907ed21a9c56b229668b28571969d988a8c (patch)
tree05ecf97ae16e1f8b42d1d449435ea95f7998c0f0
parent5881f58af573346eb0c25945a433bf9859191ac5 (diff)
Return 500 if an unknown error occurs
-rw-r--r--pkg/twilio/filter.go11
1 files changed, 7 insertions, 4 deletions
diff --git a/pkg/twilio/filter.go b/pkg/twilio/filter.go
index 48e92ef..4533f0c 100644
--- a/pkg/twilio/filter.go
+++ b/pkg/twilio/filter.go
@@ -69,11 +69,14 @@ func (th *Filter) CheckRequestSignature(r *http.Request) error {
func (th *Filter) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if err := th.CheckRequestSignature(r); err != nil {
- log.Println("Failed to check Twilio signature:", err)
- if err == ErrSignatureMismatch {
- w.WriteHeader(http.StatusForbidden)
- } else {
+ log.Printf("Failed to check Twilio signature: %s.", err)
+ switch err {
+ case ErrBase64, ErrMissingHeader:
w.WriteHeader(http.StatusBadRequest)
+ case ErrSignatureMismatch:
+ w.WriteHeader(http.StatusForbidden)
+ default:
+ w.WriteHeader(http.StatusInternalServerError)
}
return
}