diff --git a/server/server.go b/server/server.go index ca1d4ca0..b68ec437 100644 --- a/server/server.go +++ b/server/server.go @@ -413,7 +413,8 @@ func (s *Server) handleError(w http.ResponseWriter, r *http.Request, v *visitor, } else { ev.Info("WebSocket error: %s", err.Error()) } - return // Do not attempt to write to upgraded connection + w.WriteHeader(httpErr.HTTPCode) + return // Do not attempt to write any body to upgraded connection } if isNormalError { ev.Debug("Connection closed with HTTP %d (ntfy error %d)", httpErr.HTTPCode, httpErr.Code) @@ -1886,14 +1887,14 @@ func (s *Server) transformMatrixJSON(next handleFunc) handleFunc { } func (s *Server) authorizeTopicWrite(next handleFunc) handleFunc { - return s.autorizeTopic(next, user.PermissionWrite) + return s.authorizeTopic(next, user.PermissionWrite) } func (s *Server) authorizeTopicRead(next handleFunc) handleFunc { - return s.autorizeTopic(next, user.PermissionRead) + return s.authorizeTopic(next, user.PermissionRead) } -func (s *Server) autorizeTopic(next handleFunc, perm user.Permission) handleFunc { +func (s *Server) authorizeTopic(next handleFunc, perm user.Permission) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.userManager == nil { return next(w, r, v)