aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2020-03-02 16:20:44 +0000
committerGitHub <noreply@github.com>2020-03-02 16:20:44 +0000
commit59a1f4b8ed94267f4b4ad426192879dc3bef4f1e (patch)
tree4cce1217743d5fdadccefcce9e2716464d90d820
parent72565f2eeb8988af90590c90c5c8560186db9d62 (diff)
Remove httputil.LogThenError so that the line numbers are reported properly - make error reporting slightly more useful (#879)
-rw-r--r--clientapi/auth/auth.go4
-rw-r--r--clientapi/httputil/httputil.go8
-rw-r--r--clientapi/routing/account_data.go16
-rw-r--r--clientapi/routing/auth_fallback.go7
-rw-r--r--clientapi/routing/capabilities.go5
-rw-r--r--clientapi/routing/createroom.go21
-rw-r--r--clientapi/routing/device.go40
-rw-r--r--clientapi/routing/directory.go18
-rw-r--r--clientapi/routing/filter.go9
-rw-r--r--clientapi/routing/getevent.go10
-rw-r--r--clientapi/routing/joinroom.go39
-rw-r--r--clientapi/routing/login.go3
-rw-r--r--clientapi/routing/logout.go14
-rw-r--r--clientapi/routing/membership.go9
-rw-r--r--clientapi/routing/memberships.go4
-rw-r--r--clientapi/routing/profile.go51
-rw-r--r--clientapi/routing/register.go12
-rw-r--r--clientapi/routing/room_tagging.go21
-rw-r--r--clientapi/routing/sendevent.go9
-rw-r--r--clientapi/routing/sendtyping.go9
-rw-r--r--clientapi/routing/threepid.go27
-rw-r--r--clientapi/routing/voip.go5
-rw-r--r--federationapi/routing/backfill.go7
-rw-r--r--federationapi/routing/devices.go4
-rw-r--r--federationapi/routing/invite.go7
-rw-r--r--federationapi/routing/join.go16
-rw-r--r--federationapi/routing/leave.go16
-rw-r--r--federationapi/routing/missingevents.go4
-rw-r--r--federationapi/routing/profile.go10
-rw-r--r--federationapi/routing/query.go10
-rw-r--r--federationapi/routing/send.go4
-rw-r--r--federationapi/routing/threepid.go15
-rw-r--r--publicroomsapi/directory/directory.go7
-rw-r--r--publicroomsapi/directory/public_rooms.go12
-rw-r--r--syncapi/routing/messages.go7
-rw-r--r--syncapi/routing/state.go10
-rw-r--r--syncapi/sync/requestpool.go10
37 files changed, 302 insertions, 178 deletions
diff --git a/clientapi/auth/auth.go b/clientapi/auth/auth.go
index f51cfea2..87a2f667 100644
--- a/clientapi/auth/auth.go
+++ b/clientapi/auth/auth.go
@@ -26,7 +26,6 @@ import (
"github.com/matrix-org/dendrite/appservice/types"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/userutil"
"github.com/matrix-org/dendrite/common/config"
@@ -166,7 +165,8 @@ func verifyAccessToken(req *http.Request, deviceDB DeviceDatabase) (device *auth
JSON: jsonerror.UnknownToken("Unknown token"),
}
} else {
- jsonErr := httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.GetDeviceByAccessToken failed")
+ jsonErr := jsonerror.InternalServerError()
resErr = &jsonErr
}
}
diff --git a/clientapi/httputil/httputil.go b/clientapi/httputil/httputil.go
index 11785f51..b0fe6a6c 100644
--- a/clientapi/httputil/httputil.go
+++ b/clientapi/httputil/httputil.go
@@ -36,11 +36,3 @@ func UnmarshalJSONRequest(req *http.Request, iface interface{}) *util.JSONRespon
}
return nil
}
-
-// LogThenError logs the given error then returns a matrix-compliant 500 internal server error response.
-// This should be used to log fatal errors which require investigation. It should not be used
-// to log client validation errors, etc.
-func LogThenError(req *http.Request, err error) util.JSONResponse {
- util.GetLogger(req.Context()).WithError(err).Error("request failed")
- return jsonerror.InternalServerError()
-}
diff --git a/clientapi/routing/account_data.go b/clientapi/routing/account_data.go
index 8ae9de2d..24db41f5 100644
--- a/clientapi/routing/account_data.go
+++ b/clientapi/routing/account_data.go
@@ -20,7 +20,6 @@ import (
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/clientapi/auth/storage/accounts"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/producers"
"github.com/matrix-org/gomatrixserverlib"
@@ -42,7 +41,8 @@ func GetAccountData(
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
if data, err := accountDB.GetAccountDataByType(
@@ -74,24 +74,28 @@ func SaveAccountData(
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
defer req.Body.Close() // nolint: errcheck
body, err := ioutil.ReadAll(req.Body)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("ioutil.ReadAll failed")
+ return jsonerror.InternalServerError()
}
if err := accountDB.SaveAccountData(
req.Context(), localpart, roomID, dataType, string(body),
); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.SaveAccountData failed")
+ return jsonerror.InternalServerError()
}
if err := syncProducer.SendData(userID, roomID, dataType); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("syncProducer.SendData failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/auth_fallback.go b/clientapi/routing/auth_fallback.go
index 5332226c..8cb6b3d9 100644
--- a/clientapi/routing/auth_fallback.go
+++ b/clientapi/routing/auth_fallback.go
@@ -19,7 +19,6 @@ import (
"net/http"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common/config"
"github.com/matrix-org/util"
@@ -151,7 +150,8 @@ func AuthFallback(
clientIP := req.RemoteAddr
err := req.ParseForm()
if err != nil {
- res := httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("req.ParseForm failed")
+ res := jsonerror.InternalServerError()
return &res
}
@@ -203,7 +203,8 @@ func writeHTTPMessage(
w.WriteHeader(header)
_, err := w.Write([]byte(message))
if err != nil {
- res := httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("w.Write failed")
+ res := jsonerror.InternalServerError()
return &res
}
return nil
diff --git a/clientapi/routing/capabilities.go b/clientapi/routing/capabilities.go
index c8743386..0c583055 100644
--- a/clientapi/routing/capabilities.go
+++ b/clientapi/routing/capabilities.go
@@ -17,7 +17,7 @@ package routing
import (
"net/http"
- "github.com/matrix-org/dendrite/clientapi/httputil"
+ "github.com/matrix-org/dendrite/clientapi/jsonerror"
roomserverAPI "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/util"
@@ -35,7 +35,8 @@ func GetCapabilities(
&roomVersionsQueryReq,
&roomVersionsQueryRes,
); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("queryAPI.QueryRoomVersionCapabilities failed")
+ return jsonerror.InternalServerError()
}
response := map[string]interface{}{
diff --git a/clientapi/routing/createroom.go b/clientapi/routing/createroom.go
index 2b1245b9..c9623acb 100644
--- a/clientapi/routing/createroom.go
+++ b/clientapi/routing/createroom.go
@@ -193,7 +193,8 @@ func createRoom(
profile, err := appserviceAPI.RetrieveUserProfile(req.Context(), userID, asAPI, accountDB)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("appserviceAPI.RetrieveUserProfile failed")
+ return jsonerror.InternalServerError()
}
membershipContent := gomatrixserverlib.MemberContent{
@@ -276,7 +277,8 @@ func createRoom(
}
err = builder.SetContent(e.Content)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("builder.SetContent failed")
+ return jsonerror.InternalServerError()
}
if i > 0 {
builder.PrevEvents = []gomatrixserverlib.EventReference{builtEvents[i-1].EventReference()}
@@ -284,25 +286,29 @@ func createRoom(
var ev *gomatrixserverlib.Event
ev, err = buildEvent(&builder, &authEvents, cfg, evTime)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("buildEvent failed")
+ return jsonerror.InternalServerError()
}
if err = gomatrixserverlib.Allowed(*ev, &authEvents); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.Allowed failed")
+ return jsonerror.InternalServerError()
}
// Add the event to the list of auth events
builtEvents = append(builtEvents, *ev)
err = authEvents.AddEvent(ev)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("authEvents.AddEvent failed")
+ return jsonerror.InternalServerError()
}
}
// send events to the room server
_, err = producer.SendEvents(req.Context(), builtEvents, cfg.Matrix.ServerName, nil)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
// TODO(#269): Reserve room alias while we create the room. This stops us
@@ -321,7 +327,8 @@ func createRoom(
var aliasResp roomserverAPI.SetRoomAliasResponse
err = aliasAPI.SetRoomAlias(req.Context(), &aliasReq, &aliasResp)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("aliasAPI.SetRoomAlias failed")
+ return jsonerror.InternalServerError()
}
if aliasResp.AliasExists {
diff --git a/clientapi/routing/device.go b/clientapi/routing/device.go
index 9b8647cd..89c39491 100644
--- a/clientapi/routing/device.go
+++ b/clientapi/routing/device.go
@@ -21,7 +21,6 @@ import (
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/clientapi/auth/storage/devices"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/util"
@@ -51,7 +50,8 @@ func GetDeviceByID(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
ctx := req.Context()
@@ -62,7 +62,8 @@ func GetDeviceByID(
JSON: jsonerror.NotFound("Unknown device"),
}
} else if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.GetDeviceByID failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -80,14 +81,16 @@ func GetDevicesByLocalpart(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
ctx := req.Context()
deviceList, err := deviceDB.GetDevicesByLocalpart(ctx, localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.GetDevicesByLocalpart failed")
+ return jsonerror.InternalServerError()
}
res := devicesJSON{}
@@ -112,7 +115,8 @@ func UpdateDeviceByID(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
ctx := req.Context()
@@ -123,7 +127,8 @@ func UpdateDeviceByID(
JSON: jsonerror.NotFound("Unknown device"),
}
} else if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.GetDeviceByID failed")
+ return jsonerror.InternalServerError()
}
if dev.UserID != device.UserID {
@@ -138,11 +143,13 @@ func UpdateDeviceByID(
payload := deviceUpdateJSON{}
if err := json.NewDecoder(req.Body).Decode(&payload); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("json.NewDecoder.Decode failed")
+ return jsonerror.InternalServerError()
}
if err := deviceDB.UpdateDevice(ctx, localpart, deviceID, payload.DisplayName); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.UpdateDevice failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -158,14 +165,16 @@ func DeleteDeviceById(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
ctx := req.Context()
defer req.Body.Close() // nolint: errcheck
if err := deviceDB.RemoveDevice(ctx, deviceID, localpart); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.RemoveDevice failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -180,20 +189,23 @@ func DeleteDevices(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
ctx := req.Context()
payload := devicesDeleteJSON{}
if err := json.NewDecoder(req.Body).Decode(&payload); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("json.NewDecoder.Decode failed")
+ return jsonerror.InternalServerError()
}
defer req.Body.Close() // nolint: errcheck
if err := deviceDB.RemoveDevices(ctx, localpart, payload.Devices); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.RemoveDevices failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/directory.go b/clientapi/routing/directory.go
index 574b275d..248696ab 100644
--- a/clientapi/routing/directory.go
+++ b/clientapi/routing/directory.go
@@ -63,7 +63,8 @@ func DirectoryRoom(
queryReq := roomserverAPI.GetRoomIDForAliasRequest{Alias: roomAlias}
var queryRes roomserverAPI.GetRoomIDForAliasResponse
if err = rsAPI.GetRoomIDForAlias(req.Context(), &queryReq, &queryRes); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("rsAPI.GetRoomIDForAlias failed")
+ return jsonerror.InternalServerError()
}
res.RoomID = queryRes.RoomID
@@ -76,7 +77,8 @@ func DirectoryRoom(
if fedErr != nil {
// TODO: Return 502 if the remote server errored.
// TODO: Return 504 if the remote server timed out.
- return httputil.LogThenError(req, fedErr)
+ util.GetLogger(req.Context()).WithError(err).Error("federation.LookupRoomAlias failed")
+ return jsonerror.InternalServerError()
}
res.RoomID = fedRes.RoomID
res.fillServers(fedRes.Servers)
@@ -94,7 +96,8 @@ func DirectoryRoom(
joinedHostsReq := federationSenderAPI.QueryJoinedHostServerNamesInRoomRequest{RoomID: res.RoomID}
var joinedHostsRes federationSenderAPI.QueryJoinedHostServerNamesInRoomResponse
if err = fedSenderAPI.QueryJoinedHostServerNamesInRoom(req.Context(), &joinedHostsReq, &joinedHostsRes); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("fedSenderAPI.QueryJoinedHostServerNamesInRoom failed")
+ return jsonerror.InternalServerError()
}
res.fillServers(joinedHostsRes.ServerNames)
}
@@ -165,7 +168,8 @@ func SetLocalAlias(
}
var queryRes roomserverAPI.SetRoomAliasResponse
if err := aliasAPI.SetRoomAlias(req.Context(), &queryReq, &queryRes); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("aliasAPI.SetRoomAlias failed")
+ return jsonerror.InternalServerError()
}
if queryRes.AliasExists {
@@ -194,7 +198,8 @@ func RemoveLocalAlias(
}
var creatorQueryRes roomserverAPI.GetCreatorIDForAliasResponse
if err := aliasAPI.GetCreatorIDForAlias(req.Context(), &creatorQueryReq, &creatorQueryRes); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("aliasAPI.GetCreatorIDForAlias failed")
+ return jsonerror.InternalServerError()
}
if creatorQueryRes.UserID == "" {
@@ -218,7 +223,8 @@ func RemoveLocalAlias(
}
var queryRes roomserverAPI.RemoveRoomAliasResponse
if err := aliasAPI.RemoveRoomAlias(req.Context(), &queryReq, &queryRes); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("aliasAPI.RemoveRoomAlias failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/filter.go b/clientapi/routing/filter.go
index 583b2395..505e0927 100644
--- a/clientapi/routing/filter.go
+++ b/clientapi/routing/filter.go
@@ -37,7 +37,8 @@ func GetFilter(
}
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
filter, err := accountDB.GetFilter(req.Context(), localpart, filterID)
@@ -74,7 +75,8 @@ func PutFilter(
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
var filter gomatrixserverlib.Filter
@@ -93,7 +95,8 @@ func PutFilter(
filterID, err := accountDB.PutFilter(req.Context(), localpart, &filter)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.PutFilter failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/getevent.go b/clientapi/routing/getevent.go
index 115286bd..1c1a7add 100644
--- a/clientapi/routing/getevent.go
+++ b/clientapi/routing/getevent.go
@@ -18,7 +18,6 @@ import (
"net/http"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common/config"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -55,7 +54,8 @@ func GetEvent(
var eventsResp api.QueryEventsByIDResponse
err := queryAPI.QueryEventsByID(req.Context(), &eventsReq, &eventsResp)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("queryAPI.QueryEventsByID failed")
+ return jsonerror.InternalServerError()
}
if len(eventsResp.Events) == 0 {
@@ -89,7 +89,8 @@ func GetEvent(
}
var stateResp api.QueryStateAfterEventsResponse
if err := queryAPI.QueryStateAfterEvents(req.Context(), &stateReq, &stateResp); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("queryAPI.QueryStateAfterEvents failed")
+ return jsonerror.InternalServerError()
}
if !stateResp.RoomExists {
@@ -109,7 +110,8 @@ func GetEvent(
if stateEvent.StateKeyEquals(r.device.UserID) {
membership, err := stateEvent.Membership()
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("stateEvent.Membership failed")
+ return jsonerror.InternalServerError()
}
if membership == gomatrixserverlib.Join {
return util.JSONResponse{
diff --git a/clientapi/routing/joinroom.go b/clientapi/routing/joinroom.go
index 5e6f3e55..de9667e2 100644
--- a/clientapi/routing/joinroom.go
+++ b/clientapi/routing/joinroom.go
@@ -62,12 +62,14 @@ func JoinRoomByIDOrAlias(
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
profile, err := accountDB.GetProfileByLocalpart(req.Context(), localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetProfileByLocalpart failed")
+ return jsonerror.InternalServerError()
}
content["membership"] = gomatrixserverlib.Join
@@ -119,7 +121,8 @@ func (r joinRoomReq) joinRoomByID(roomID string) util.JSONResponse {
}
var queryRes roomserverAPI.QueryInvitesForUserResponse
if err := r.queryAPI.QueryInvitesForUser(r.req.Context(), &queryReq, &queryRes); err != nil {
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("r.queryAPI.QueryInvitesForUser failed")
+ return jsonerror.InternalServerError()
}
servers := []gomatrixserverlib.ServerName{}
@@ -127,7 +130,8 @@ func (r joinRoomReq) joinRoomByID(roomID string) util.JSONResponse {
for _, userID := range queryRes.InviteSenderUserIDs {
_, domain, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
if !seenInInviterIDs[domain] {
servers = append(servers, domain)
@@ -141,7 +145,8 @@ func (r joinRoomReq) joinRoomByID(roomID string) util.JSONResponse {
// Note: It's no guarantee we'll succeed because a room isn't bound to the domain in its ID
_, domain, err := gomatrixserverlib.SplitID('!', roomID)
if err != nil {
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
if domain != r.cfg.Matrix.ServerName && !seenInInviterIDs[domain] {
servers = append(servers, domain)
@@ -164,7 +169,8 @@ func (r joinRoomReq) joinRoomByAlias(roomAlias string) util.JSONResponse {
queryReq := roomserverAPI.GetRoomIDForAliasRequest{Alias: roomAlias}
var queryRes roomserverAPI.GetRoomIDForAliasResponse
if err = r.aliasAPI.GetRoomIDForAlias(r.req.Context(), &queryReq, &queryRes); err != nil {
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("r.aliasAPI.GetRoomIDForAlias failed")
+ return jsonerror.InternalServerError()
}
if len(queryRes.RoomID) > 0 {
@@ -194,7 +200,8 @@ func (r joinRoomReq) joinRoomByRemoteAlias(
}
}
}
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("r.federation.LookupRoomAlias failed")
+ return jsonerror.InternalServerError()
}
return r.joinRoomUsingServers(resp.RoomID, resp.Servers)
@@ -227,14 +234,16 @@ func (r joinRoomReq) joinRoomUsingServers(
var eb gomatrixserverlib.EventBuilder
err := r.writeToBuilder(&eb, roomID)
if err != nil {
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("r.writeToBuilder failed")
+ return jsonerror.InternalServerError()
}
var queryRes roomserverAPI.QueryLatestEventsAndStateResponse
event, err := common.BuildEvent(r.req.Context(), &eb, r.cfg, r.evTime, r.queryAPI, &queryRes)
if err == nil {
if _, err = r.producer.SendEvents(r.req.Context(), []gomatrixserverlib.Event{*event}, r.cfg.Matrix.ServerName, nil); err != nil {
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("r.producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
Code: http.StatusOK,
@@ -244,7 +253,8 @@ func (r joinRoomReq) joinRoomUsingServers(
}
}
if err != common.ErrRoomNoExists {
- return httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("common.BuildEvent failed")
+ return jsonerror.InternalServerError()
}
if len(servers) == 0 {
@@ -280,7 +290,8 @@ func (r joinRoomReq) joinRoomUsingServers(
// 4) We couldn't fetch the public keys needed to verify the
// signatures on the state events.
// 5) ...
- return httputil.LogThenError(r.req, lastErr)
+ util.GetLogger(r.req.Context()).WithError(lastErr).Error("failed to join through any server")
+ return jsonerror.InternalServerError()
}
// joinRoomUsingServer tries to join a remote room using a given matrix server.
@@ -306,7 +317,8 @@ func (r joinRoomReq) joinRoomUsingServer(roomID string, server gomatrixserverlib
eventID, r.evTime, r.cfg.Matrix.ServerName, r.cfg.Matrix.KeyID, r.cfg.Matrix.PrivateKey,
)
if err != nil {
- res := httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("respMakeJoin.JoinEvent.Build failed")
+ res := jsonerror.InternalServerError()
return &res, nil
}
@@ -322,7 +334,8 @@ func (r joinRoomReq) joinRoomUsingServer(roomID string, server gomatrixserverlib
if err = r.producer.SendEventWithState(
r.req.Context(), gomatrixserverlib.RespState(respSendJoin.RespState), event,
); err != nil {
- res := httputil.LogThenError(r.req, err)
+ util.GetLogger(r.req.Context()).WithError(err).Error("gomatrixserverlib.RespState failed")
+ res := jsonerror.InternalServerError()
return &res, nil
}
diff --git a/clientapi/routing/login.go b/clientapi/routing/login.go
index b8364ed9..21b94720 100644
--- a/clientapi/routing/login.go
+++ b/clientapi/routing/login.go
@@ -122,7 +122,8 @@ func Login(
token, err := auth.GenerateAccessToken()
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("auth.GenerateAccessToken failed")
+ return jsonerror.InternalServerError()
}
dev, err := getDevice(req.Context(), r, deviceDB, acc, token)
diff --git a/clientapi/routing/logout.go b/clientapi/routing/logout.go
index 0ac9ca4a..26b7f117 100644
--- a/clientapi/routing/logout.go
+++ b/clientapi/routing/logout.go
@@ -19,7 +19,7 @@ import (
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/clientapi/auth/storage/devices"
- "github.com/matrix-org/dendrite/clientapi/httputil"
+ "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/util"
)
@@ -30,11 +30,13 @@ func Logout(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
if err := deviceDB.RemoveDevice(req.Context(), device.ID, localpart); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.RemoveDevice failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -49,11 +51,13 @@ func LogoutAll(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
if err := deviceDB.RemoveAllDevices(req.Context(), localpart); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.RemoveAllDevices failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/membership.go b/clientapi/routing/membership.go
index 68c131a2..61d9e8e3 100644
--- a/clientapi/routing/membership.go
+++ b/clientapi/routing/membership.go
@@ -90,13 +90,15 @@ func SendMembership(
JSON: jsonerror.NotFound(err.Error()),
}
} else if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("buildMembershipEvent failed")
+ return jsonerror.InternalServerError()
}
if _, err := producer.SendEvents(
req.Context(), []gomatrixserverlib.Event{*event}, cfg.Matrix.ServerName, nil,
); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
var returnData interface{} = struct{}{}
@@ -242,7 +244,8 @@ func checkAndProcessThreepid(
JSON: jsonerror.NotFound(err.Error()),
}
} else if err != nil {
- er := httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("threepid.CheckAndProcessInvite failed")
+ er := jsonerror.InternalServerError()
return inviteStored, &er
}
return
diff --git a/clientapi/routing/memberships.go b/clientapi/routing/memberships.go
index e6fca505..a6899eeb 100644
--- a/clientapi/routing/memberships.go
+++ b/clientapi/routing/memberships.go
@@ -18,7 +18,6 @@ import (
"net/http"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common/config"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -43,7 +42,8 @@ func GetMemberships(
}
var queryRes api.QueryMembershipsForRoomResponse
if err := queryAPI.QueryMembershipsForRoom(req.Context(), &queryReq, &queryRes); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("queryAPI.QueryMembershipsForRoom failed")
+ return jsonerror.InternalServerError()
}
if !queryRes.HasBeenInRoom {
diff --git a/clientapi/routing/profile.go b/clientapi/routing/profile.go
index 9b091ddf..b1909e7a 100644
--- a/clientapi/routing/profile.go
+++ b/clientapi/routing/profile.go
@@ -50,7 +50,8 @@ func GetProfile(
}
}
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("getProfile failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -77,7 +78,8 @@ func GetAvatarURL(
}
}
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("getProfile failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -116,7 +118,8 @@ func SetAvatarURL(
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
evTime, err := httputil.ParseTSParam(req)
@@ -129,16 +132,19 @@ func SetAvatarURL(
oldProfile, err := accountDB.GetProfileByLocalpart(req.Context(), localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetProfileByLocalpart failed")
+ return jsonerror.InternalServerError()
}
if err = accountDB.SetAvatarURL(req.Context(), localpart, r.AvatarURL); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.SetAvatarURL failed")
+ return jsonerror.InternalServerError()
}
memberships, err := accountDB.GetMembershipsByLocalpart(req.Context(), localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetMembershipsByLocalpart failed")
+ return jsonerror.InternalServerError()
}
newProfile := authtypes.Profile{
@@ -151,15 +157,18 @@ func SetAvatarURL(
req.Context(), memberships, newProfile, userID, cfg, evTime, queryAPI,
)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("buildMembershipEvents failed")
+ return jsonerror.InternalServerError()
}
if _, err := rsProducer.SendEvents(req.Context(), events, cfg.Matrix.ServerName, nil); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("rsProducer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
if err := producer.SendUpdate(userID, changedKey, oldProfile.AvatarURL, r.AvatarURL); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("producer.SendUpdate failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -183,7 +192,8 @@ func GetDisplayName(
}
}
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("getProfile failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -222,7 +232,8 @@ func SetDisplayName(
localpart, _, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
evTime, err := httputil.ParseTSParam(req)
@@ -235,16 +246,19 @@ func SetDisplayName(
oldProfile, err := accountDB.GetProfileByLocalpart(req.Context(), localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetProfileByLocalpart failed")
+ return jsonerror.InternalServerError()
}
if err = accountDB.SetDisplayName(req.Context(), localpart, r.DisplayName); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.SetDisplayName failed")
+ return jsonerror.InternalServerError()
}
memberships, err := accountDB.GetMembershipsByLocalpart(req.Context(), localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetMembershipsByLocalpart failed")
+ return jsonerror.InternalServerError()
}
newProfile := authtypes.Profile{
@@ -257,15 +271,18 @@ func SetDisplayName(
req.Context(), memberships, newProfile, userID, cfg, evTime, queryAPI,
)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("buildMembershipEvents failed")
+ return jsonerror.InternalServerError()
}
if _, err := rsProducer.SendEvents(req.Context(), events, cfg.Matrix.ServerName, nil); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("rsProducer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
if err := producer.SendUpdate(userID, changedKey, oldProfile.DisplayName, r.DisplayName); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("producer.SendUpdate failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/register.go b/clientapi/routing/register.go
index 9d67d998..6df0b28b 100644
--- a/clientapi/routing/register.go
+++ b/clientapi/routing/register.go
@@ -472,7 +472,8 @@ func Register(
if r.Username == "" {
id, err := accountDB.GetNewNumericLocalpart(req.Context())
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetNewNumericLocalpart failed")
+ return jsonerror.InternalServerError()
}
r.Username = strconv.FormatInt(id, 10)
@@ -520,7 +521,8 @@ func handleGuestRegistration(
//Generate numeric local part for guest user
id, err := accountDB.GetNewNumericLocalpart(req.Context())
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetNewNumericLocalpart failed")
+ return jsonerror.InternalServerError()
}
localpart := strconv.FormatInt(id, 10)
@@ -602,7 +604,8 @@ func handleRegistrationFlow(
valid, err := isValidMacLogin(cfg, r.Username, r.Password, r.Admin, r.Auth.Mac)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("isValidMacLogin failed")
+ return jsonerror.InternalServerError()
} else if !valid {
return util.MessageResponse(http.StatusForbidden, "HMAC incorrect")
}
@@ -758,7 +761,8 @@ func LegacyRegister(
valid, err := isValidMacLogin(cfg, r.Username, r.Password, r.Admin, r.Mac)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("isValidMacLogin failed")
+ return jsonerror.InternalServerError()
}
if !valid {
diff --git a/clientapi/routing/room_tagging.go b/clientapi/routing/room_tagging.go
index aa5f13c4..5c68668d 100644
--- a/clientapi/routing/room_tagging.go
+++ b/clientapi/routing/room_tagging.go
@@ -56,7 +56,8 @@ func GetTags(
_, data, err := obtainSavedTags(req, userID, roomID, accountDB)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("obtainSavedTags failed")
+ return jsonerror.InternalServerError()
}
if data == nil {
@@ -99,20 +100,23 @@ func PutTag(
localpart, data, err := obtainSavedTags(req, userID, roomID, accountDB)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("obtainSavedTags failed")
+ return jsonerror.InternalServerError()
}
var tagContent gomatrix.TagContent
if data != nil {
if err = json.Unmarshal(data.Content, &tagContent); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("json.Unmarshal failed")
+ return jsonerror.InternalServerError()
}
} else {
tagContent = newTag()
}
tagContent.Tags[tag] = properties
if err = saveTagData(req, localpart, roomID, accountDB, tagContent); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("saveTagData failed")
+ return jsonerror.InternalServerError()
}
// Send data to syncProducer in order to inform clients of changes
@@ -151,7 +155,8 @@ func DeleteTag(
localpart, data, err := obtainSavedTags(req, userID, roomID, accountDB)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("obtainSavedTags failed")
+ return jsonerror.InternalServerError()
}
// If there are no tags in the database, exit
@@ -166,7 +171,8 @@ func DeleteTag(
var tagContent gomatrix.TagContent
err = json.Unmarshal(data.Content, &tagContent)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("json.Unmarshal failed")
+ return jsonerror.InternalServerError()
}
// Check whether the tag to be deleted exists
@@ -180,7 +186,8 @@ func DeleteTag(
}
}
if err = saveTagData(req, localpart, roomID, accountDB, tagContent); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("saveTagData failed")
+ return jsonerror.InternalServerError()
}
// Send data to syncProducer in order to inform clients of changes
diff --git a/clientapi/routing/sendevent.go b/clientapi/routing/sendevent.go
index e6de187f..47ad1882 100644
--- a/clientapi/routing/sendevent.go
+++ b/clientapi/routing/sendevent.go
@@ -74,7 +74,8 @@ func SendEvent(
req.Context(), []gomatrixserverlib.Event{*e}, cfg.Matrix.ServerName, txnAndSessionID,
)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
res := util.JSONResponse{
@@ -121,7 +122,8 @@ func generateSendEvent(
}
err = builder.SetContent(r)
if err != nil {
- resErr := httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("builder.SetContent failed")
+ resErr := jsonerror.InternalServerError()
return nil, &resErr
}
@@ -133,7 +135,8 @@ func generateSendEvent(
JSON: jsonerror.NotFound("Room does not exist"),
}
} else if err != nil {
- resErr := httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("common.BuildEvent failed")
+ resErr := jsonerror.InternalServerError()
return nil, &resErr
}
diff --git a/clientapi/routing/sendtyping.go b/clientapi/routing/sendtyping.go
index db3ab28b..29953c32 100644
--- a/clientapi/routing/sendtyping.go
+++ b/clientapi/routing/sendtyping.go
@@ -46,7 +46,8 @@ func SendTyping(
localpart, err := userutil.ParseUsernameParam(userID, nil)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("userutil.ParseUsernameParam failed")
+ return jsonerror.InternalServerError()
}
// Verify that the user is a member of this room
@@ -57,7 +58,8 @@ func SendTyping(
JSON: jsonerror.Forbidden("User not in this room"),
}
} else if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetMembershipInRoomByLocalPart failed")
+ return jsonerror.InternalServerError()
}
// parse the incoming http request
@@ -70,7 +72,8 @@ func SendTyping(
if err = typingProducer.Send(
req.Context(), userID, roomID, r.Typing, r.Timeout,
); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("typingProducer.Send failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/threepid.go b/clientapi/routing/threepid.go
index 69383cdf..fed9ae32 100644
--- a/clientapi/routing/threepid.go
+++ b/clientapi/routing/threepid.go
@@ -51,7 +51,8 @@ func RequestEmailToken(req *http.Request, accountDB accounts.Database, cfg *conf
// Check if the 3PID is already in use locally
localpart, err := accountDB.GetLocalpartForThreePID(req.Context(), body.Email, "email")
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetLocalpartForThreePID failed")
+ return jsonerror.InternalServerError()
}
if len(localpart) > 0 {
@@ -71,7 +72,8 @@ func RequestEmailToken(req *http.Request, accountDB accounts.Database, cfg *conf
JSON: jsonerror.NotTrusted(body.IDServer),
}
} else if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("threepid.CreateSession failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -98,7 +100,8 @@ func CheckAndSave3PIDAssociation(
JSON: jsonerror.NotTrusted(body.Creds.IDServer),
}
} else if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("threepid.CheckAssociation failed")
+ return jsonerror.InternalServerError()
}
if !verified {
@@ -120,18 +123,21 @@ func CheckAndSave3PIDAssociation(
JSON: jsonerror.NotTrusted(body.Creds.IDServer),
}
} else if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("threepid.PublishAssociation failed")
+ return jsonerror.InternalServerError()
}
}
// Save the association in the database
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
if err = accountDB.SaveThreePIDAssociation(req.Context(), address, localpart, medium); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountsDB.SaveThreePIDAssociation failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -146,12 +152,14 @@ func GetAssociated3PIDs(
) util.JSONResponse {
localpart, _, err := gomatrixserverlib.SplitID('@', device.UserID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
threepids, err := accountDB.GetThreePIDsForLocalpart(req.Context(), localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.GetThreePIDsForLocalpart failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -168,7 +176,8 @@ func Forget3PID(req *http.Request, accountDB accounts.Database) util.JSONRespons
}
if err := accountDB.RemoveThreePIDAssociation(req.Context(), body.Address, body.Medium); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("accountDB.RemoveThreePIDAssociation failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/clientapi/routing/voip.go b/clientapi/routing/voip.go
index 872e6447..c1fd741c 100644
--- a/clientapi/routing/voip.go
+++ b/clientapi/routing/voip.go
@@ -23,7 +23,7 @@ import (
"time"
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
- "github.com/matrix-org/dendrite/clientapi/httputil"
+ "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common/config"
"github.com/matrix-org/gomatrix"
"github.com/matrix-org/util"
@@ -56,7 +56,8 @@ func RequestTurnServer(req *http.Request, device *authtypes.Device, cfg *config.
_, err := mac.Write([]byte(resp.Username))
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("mac.Write failed")
+ return jsonerror.InternalServerError()
}
resp.Username = fmt.Sprintf("%d:%s", expiry, device.UserID)
diff --git a/federationapi/routing/backfill.go b/federationapi/routing/backfill.go
index cb388f50..b74bfe3a 100644
--- a/federationapi/routing/backfill.go
+++ b/federationapi/routing/backfill.go
@@ -19,7 +19,6 @@ import (
"strconv"
"time"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common/config"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -72,12 +71,14 @@ func Backfill(
ServerName: request.Origin(),
}
if req.Limit, err = strconv.Atoi(limit); err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("strconv.Atoi failed")
+ return jsonerror.InternalServerError()
}
// Query the roomserver.
if err = query.QueryBackfill(httpReq.Context(), &req, &res); err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("query.QueryBackfill failed")
+ return jsonerror.InternalServerError()
}
// Filter any event that's not from the requested room out.
diff --git a/federationapi/routing/devices.go b/federationapi/routing/devices.go
index 78021c12..01647a61 100644
--- a/federationapi/routing/devices.go
+++ b/federationapi/routing/devices.go
@@ -17,7 +17,6 @@ import (
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/clientapi/auth/storage/devices"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/userutil"
"github.com/matrix-org/util"
@@ -43,7 +42,8 @@ func GetUserDevices(
devs, err := deviceDB.GetDevicesByLocalpart(req.Context(), localpart)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("deviceDB.GetDevicesByLocalPart failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/federationapi/routing/invite.go b/federationapi/routing/invite.go
index 9a04a088..94610346 100644
--- a/federationapi/routing/invite.go
+++ b/federationapi/routing/invite.go
@@ -18,7 +18,6 @@ import (
"encoding/json"
"net/http"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/producers"
"github.com/matrix-org/dendrite/common/config"
@@ -78,7 +77,8 @@ func Invite(
}}
verifyResults, err := keys.VerifyJSONs(httpReq.Context(), verifyRequests)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("keys.VerifyJSONs failed")
+ return jsonerror.InternalServerError()
}
if verifyResults[0].Error != nil {
return util.JSONResponse{
@@ -94,7 +94,8 @@ func Invite(
// Add the invite event to the roomserver.
if err = producer.SendInvite(httpReq.Context(), signedEvent); err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("producer.SendInvite failed")
+ return jsonerror.InternalServerError()
}
// Return the signed event to the originating server, it should then tell
diff --git a/federationapi/routing/join.go b/federationapi/routing/join.go
index 325b9937..369e19ae 100644
--- a/federationapi/routing/join.go
+++ b/federationapi/routing/join.go
@@ -19,7 +19,6 @@ import (
"net/http"
"time"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/producers"
"github.com/matrix-org/dendrite/common"
@@ -60,7 +59,8 @@ func MakeJoin(
}
err = builder.SetContent(map[string]interface{}{"membership": gomatrixserverlib.Join})
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("builder.SetContent failed")
+ return jsonerror.InternalServerError()
}
var queryRes api.QueryLatestEventsAndStateResponse
@@ -71,7 +71,8 @@ func MakeJoin(
JSON: jsonerror.NotFound("Room does not exist"),
}
} else if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("common.BuildEvent failed")
+ return jsonerror.InternalServerError()
}
// Check that the join is allowed or not
@@ -143,7 +144,8 @@ func SendJoin(
}}
verifyResults, err := keys.VerifyJSONs(httpReq.Context(), verifyRequests)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("keys.VerifyJSONs failed")
+ return jsonerror.InternalServerError()
}
if verifyResults[0].Error != nil {
return util.JSONResponse{
@@ -161,7 +163,8 @@ func SendJoin(
RoomID: roomID,
}, &stateAndAuthChainResponse)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("query.QueryStateAndAuthChain failed")
+ return jsonerror.InternalServerError()
}
if !stateAndAuthChainResponse.RoomExists {
@@ -178,7 +181,8 @@ func SendJoin(
httpReq.Context(), []gomatrixserverlib.Event{event}, cfg.Matrix.ServerName, nil,
)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/federationapi/routing/leave.go b/federationapi/routing/leave.go
index 95815808..f27989ff 100644
--- a/federationapi/routing/leave.go
+++ b/federationapi/routing/leave.go
@@ -17,7 +17,6 @@ import (
"net/http"
"time"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/producers"
"github.com/matrix-org/dendrite/common"
@@ -58,7 +57,8 @@ func MakeLeave(
}
err = builder.SetContent(map[string]interface{}{"membership": gomatrixserverlib.Leave})
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("builder.SetContent failed")
+ return jsonerror.InternalServerError()
}
var queryRes api.QueryLatestEventsAndStateResponse
@@ -69,7 +69,8 @@ func MakeLeave(
JSON: jsonerror.NotFound("Room does not exist"),
}
} else if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("common.BuildEvent failed")
+ return jsonerror.InternalServerError()
}
// Check that the leave is allowed or not
@@ -140,7 +141,8 @@ func SendLeave(
}}
verifyResults, err := keys.VerifyJSONs(httpReq.Context(), verifyRequests)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("keys.VerifyJSONs failed")
+ return jsonerror.InternalServerError()
}
if verifyResults[0].Error != nil {
return util.JSONResponse{
@@ -152,7 +154,8 @@ func SendLeave(
// check membership is set to leave
mem, err := event.Membership()
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("event.Membership failed")
+ return jsonerror.InternalServerError()
} else if mem != gomatrixserverlib.Leave {
return util.JSONResponse{
Code: http.StatusBadRequest,
@@ -165,7 +168,8 @@ func SendLeave(
// the room, so set SendAsServer to cfg.Matrix.ServerName
_, err = producer.SendEvents(httpReq.Context(), []gomatrixserverlib.Event{event}, cfg.Matrix.ServerName, nil)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/federationapi/routing/missingevents.go b/federationapi/routing/missingevents.go
index 0165b8a6..661ec33a 100644
--- a/federationapi/routing/missingevents.go
+++ b/federationapi/routing/missingevents.go
@@ -16,7 +16,6 @@ import (
"encoding/json"
"net/http"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib"
@@ -56,7 +55,8 @@ func GetMissingEvents(
},
&eventsResponse,
); err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("query.QueryMissingEvents failed")
+ return jsonerror.InternalServerError()
}
eventsResponse.Events = filterEvents(eventsResponse.Events, gme.MinDepth, roomID)
diff --git a/federationapi/routing/profile.go b/federationapi/routing/profile.go
index 31b7a343..01a70c01 100644
--- a/federationapi/routing/profile.go
+++ b/federationapi/routing/profile.go
@@ -19,7 +19,6 @@ import (
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/clientapi/auth/storage/accounts"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common"
"github.com/matrix-org/dendrite/common/config"
@@ -46,16 +45,19 @@ func GetProfile(
_, domain, err := gomatrixserverlib.SplitID('@', userID)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("gomatrixserverlib.SplitID failed")
+ return jsonerror.InternalServerError()
}
if domain != cfg.Matrix.ServerName {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("domain != cfg.Matrix.ServerName failed")
+ return jsonerror.InternalServerError()
}
profile, err := appserviceAPI.RetrieveUserProfile(httpReq.Context(), userID, asAPI, accountDB)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("appserviceAPI.RetrieveUserProfile failed")
+ return jsonerror.InternalServerError()
}
var res interface{}
diff --git a/federationapi/routing/query.go b/federationapi/routing/query.go
index 5277f0ac..7cb50e52 100644
--- a/federationapi/routing/query.go
+++ b/federationapi/routing/query.go
@@ -18,7 +18,6 @@ import (
"fmt"
"net/http"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common/config"
federationSenderAPI "github.com/matrix-org/dendrite/federationsender/api"
@@ -57,14 +56,16 @@ func RoomAliasToID(
queryReq := roomserverAPI.GetRoomIDForAliasRequest{Alias: roomAlias}
var queryRes roomserverAPI.GetRoomIDForAliasResponse
if err = aliasAPI.GetRoomIDForAlias(httpReq.Context(), &queryReq, &queryRes); err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("aliasAPI.GetRoomIDForAlias failed")
+ return jsonerror.InternalServerError()
}
if queryRes.RoomID != "" {
serverQueryReq := federationSenderAPI.QueryJoinedHostServerNamesInRoomRequest{RoomID: queryRes.RoomID}
var serverQueryRes federationSenderAPI.QueryJoinedHostServerNamesInRoomResponse
if err = senderAPI.QueryJoinedHostServerNamesInRoom(httpReq.Context(), &serverQueryReq, &serverQueryRes); err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("senderAPI.QueryJoinedHostServerNamesInRoom failed")
+ return jsonerror.InternalServerError()
}
resp = gomatrixserverlib.RespDirectory{
@@ -92,7 +93,8 @@ func RoomAliasToID(
}
// TODO: Return 502 if the remote server errored.
// TODO: Return 504 if the remote server timed out.
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("federation.LookupRoomAlias failed")
+ return jsonerror.InternalServerError()
}
}
diff --git a/federationapi/routing/send.go b/federationapi/routing/send.go
index 5513a088..191e13ef 100644
--- a/federationapi/routing/send.go
+++ b/federationapi/routing/send.go
@@ -20,7 +20,6 @@ import (
"fmt"
"net/http"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/clientapi/producers"
"github.com/matrix-org/dendrite/common/config"
@@ -61,7 +60,8 @@ func Send(
resp, err := t.processTransaction()
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("t.processTransaction failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/federationapi/routing/threepid.go b/federationapi/routing/threepid.go
index a22685f2..03f3c5bb 100644
--- a/federationapi/routing/threepid.go
+++ b/federationapi/routing/threepid.go
@@ -74,7 +74,8 @@ func CreateInvitesFrom3PIDInvites(
req.Context(), queryAPI, asAPI, cfg, inv, federation, accountDB,
)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("createInviteFrom3PIDInvite failed")
+ return jsonerror.InternalServerError()
}
if event != nil {
evs = append(evs, *event)
@@ -83,7 +84,8 @@ func CreateInvitesFrom3PIDInvites(
// Send all the events
if _, err := producer.SendEvents(req.Context(), evs, cfg.Matrix.ServerName, nil); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -143,21 +145,24 @@ func ExchangeThirdPartyInvite(
JSON: jsonerror.NotFound("Unknown room " + roomID),
}
} else if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("buildMembershipEvent failed")
+ return jsonerror.InternalServerError()
}
// Ask the requesting server to sign the newly created event so we know it
// acknowledged it
signedEvent, err := federation.SendInvite(httpReq.Context(), request.Origin(), *event)
if err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("federation.SendInvite failed")
+ return jsonerror.InternalServerError()
}
// Send the event to the roomserver
if _, err = producer.SendEvents(
httpReq.Context(), []gomatrixserverlib.Event{signedEvent.Event}, cfg.Matrix.ServerName, nil,
); err != nil {
- return httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("producer.SendEvents failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/publicroomsapi/directory/directory.go b/publicroomsapi/directory/directory.go
index 88981549..e56fc6cc 100644
--- a/publicroomsapi/directory/directory.go
+++ b/publicroomsapi/directory/directory.go
@@ -18,6 +18,7 @@ import (
"net/http"
"github.com/matrix-org/dendrite/clientapi/httputil"
+ "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/publicroomsapi/storage"
"github.com/matrix-org/gomatrixserverlib"
@@ -35,7 +36,8 @@ func GetVisibility(
) util.JSONResponse {
isPublic, err := publicRoomsDatabase.GetRoomVisibility(req.Context(), roomID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("publicRoomsDatabase.GetRoomVisibility failed")
+ return jsonerror.InternalServerError()
}
var v roomVisibility
@@ -64,7 +66,8 @@ func SetVisibility(
isPublic := v.Visibility == gomatrixserverlib.Public
if err := publicRoomsDatabase.SetRoomVisibility(req.Context(), isPublic, roomID); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("publicRoomsDatabase.SetRoomVisibility failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
diff --git a/publicroomsapi/directory/public_rooms.go b/publicroomsapi/directory/public_rooms.go
index 10aaa070..fd327942 100644
--- a/publicroomsapi/directory/public_rooms.go
+++ b/publicroomsapi/directory/public_rooms.go
@@ -60,11 +60,13 @@ func GetPostPublicRooms(
// ParseInt returns 0 and an error when trying to parse an empty string
// In that case, we want to assign 0 so we ignore the error
if err != nil && len(request.Since) > 0 {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("strconv.ParseInt failed")
+ return jsonerror.InternalServerError()
}
if response.Estimate, err = publicRoomDatabase.CountPublicRooms(req.Context()); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("publicRoomDatabase.CountPublicRooms failed")
+ return jsonerror.InternalServerError()
}
if offset > 0 {
@@ -78,7 +80,8 @@ func GetPostPublicRooms(
if response.Chunk, err = publicRoomDatabase.GetPublicRooms(
req.Context(), offset, limit, request.Filter.SearchTerms,
); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("publicRoomDatabase.GetPublicRooms failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
@@ -96,7 +99,8 @@ func fillPublicRoomsReq(httpReq *http.Request, request *publicRoomReq) *util.JSO
// Atoi returns 0 and an error when trying to parse an empty string
// In that case, we want to assign 0 so we ignore the error
if err != nil && len(httpReq.FormValue("limit")) > 0 {
- reqErr := httputil.LogThenError(httpReq, err)
+ util.GetLogger(httpReq.Context()).WithError(err).Error("strconv.Atoi failed")
+ reqErr := jsonerror.InternalServerError()
return &reqErr
}
request.Limit = int16(limit)
diff --git a/syncapi/routing/messages.go b/syncapi/routing/messages.go
index 4fac2ba2..7bbe16f3 100644
--- a/syncapi/routing/messages.go
+++ b/syncapi/routing/messages.go
@@ -20,7 +20,6 @@ import (
"sort"
"strconv"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/common/config"
"github.com/matrix-org/dendrite/roomserver/api"
@@ -104,7 +103,8 @@ func OnIncomingMessagesRequest(
// going forward).
to, err = setToDefault(req.Context(), db, backwardOrdering, roomID)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("setToDefault failed")
+ return jsonerror.InternalServerError()
}
wasToProvided = false
}
@@ -147,7 +147,8 @@ func OnIncomingMessagesRequest(
clientEvents, start, end, err := mReq.retrieveEvents()
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("mreq.retrieveEvents failed")
+ return jsonerror.InternalServerError()
}
// Respond with the events.
diff --git a/syncapi/routing/state.go b/syncapi/routing/state.go
index cf67f752..5688086c 100644
--- a/syncapi/routing/state.go
+++ b/syncapi/routing/state.go
@@ -18,7 +18,6 @@ import (
"encoding/json"
"net/http"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/types"
@@ -49,7 +48,8 @@ func OnIncomingStateRequest(req *http.Request, db storage.Database, roomID strin
stateEvents, err := db.GetStateEventsForRoom(req.Context(), roomID, &stateFilter)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("db.GetStateEventsForRoom failed")
+ return jsonerror.InternalServerError()
}
resp := []stateEventInStateResp{}
@@ -61,7 +61,8 @@ func OnIncomingStateRequest(req *http.Request, db storage.Database, roomID strin
var prevEventRef types.PrevEventRef
if len(event.Unsigned()) > 0 {
if err := json.Unmarshal(event.Unsigned(), &prevEventRef); err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("json.Unmarshal failed")
+ return jsonerror.InternalServerError()
}
// Fills the previous state event ID if the state event replaces another
// state event
@@ -100,7 +101,8 @@ func OnIncomingStateTypeRequest(req *http.Request, db storage.Database, roomID s
event, err := db.GetStateEvent(req.Context(), roomID, evType, stateKey)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("db.GetStateEvent failed")
+ return jsonerror.InternalServerError()
}
if event == nil {
diff --git a/syncapi/sync/requestpool.go b/syncapi/sync/requestpool.go
index 22bd239f..b4ccbd27 100644
--- a/syncapi/sync/requestpool.go
+++ b/syncapi/sync/requestpool.go
@@ -20,7 +20,6 @@ import (
"github.com/matrix-org/dendrite/clientapi/auth/authtypes"
"github.com/matrix-org/dendrite/clientapi/auth/storage/accounts"
- "github.com/matrix-org/dendrite/clientapi/httputil"
"github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/syncapi/storage"
"github.com/matrix-org/dendrite/syncapi/types"
@@ -68,7 +67,8 @@ func (rp *RequestPool) OnIncomingSyncRequest(req *http.Request, device *authtype
if shouldReturnImmediately(syncReq) {
syncData, err = rp.currentSyncForUser(*syncReq, currPos)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("rp.currentSyncForUser failed")
+ return jsonerror.InternalServerError()
}
return util.JSONResponse{
Code: http.StatusOK,
@@ -107,7 +107,8 @@ func (rp *RequestPool) OnIncomingSyncRequest(req *http.Request, device *authtype
hasTimedOut = true
// Or for the request to be cancelled
case <-req.Context().Done():
- return httputil.LogThenError(req, req.Context().Err())
+ util.GetLogger(req.Context()).WithError(err).Error("request cancelled")
+ return jsonerror.InternalServerError()
}
// Note that we don't time out during calculation of sync
@@ -117,7 +118,8 @@ func (rp *RequestPool) OnIncomingSyncRequest(req *http.Request, device *authtype
syncData, err = rp.currentSyncForUser(*syncReq, currPos)
if err != nil {
- return httputil.LogThenError(req, err)
+ util.GetLogger(req.Context()).WithError(err).Error("rp.currentSyncForUser failed")
+ return jsonerror.InternalServerError()
}
if !syncData.IsEmpty() || hasTimedOut {