aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Alexander <neilalexander@users.noreply.github.com>2022-10-11 10:48:36 +0100
committerNeil Alexander <neilalexander@users.noreply.github.com>2022-10-11 10:48:36 +0100
commit9ed8ff6b938e0452d122c68b38cf4fedcd74c0bf (patch)
tree63a57f55661e2e4347f7e441608bad0d52667c9b
parent6bf1912525724baa1a8bf5e0bf51524d7cee59ba (diff)
Tweak federation `M_NOT_FOUND` errors
-rw-r--r--federationapi/routing/events.go6
-rw-r--r--federationapi/routing/state.go15
2 files changed, 13 insertions, 8 deletions
diff --git a/federationapi/routing/events.go b/federationapi/routing/events.go
index 23796edf..6168912b 100644
--- a/federationapi/routing/events.go
+++ b/federationapi/routing/events.go
@@ -20,6 +20,7 @@ import (
"net/http"
"time"
+ "github.com/matrix-org/dendrite/clientapi/jsonerror"
"github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib"
"github.com/matrix-org/util"
@@ -95,7 +96,10 @@ func fetchEvent(ctx context.Context, rsAPI api.FederationRoomserverAPI, eventID
}
if len(eventsResponse.Events) == 0 {
- return nil, &util.JSONResponse{Code: http.StatusNotFound, JSON: nil}
+ return nil, &util.JSONResponse{
+ Code: http.StatusNotFound,
+ JSON: jsonerror.NotFound("Event not found"),
+ }
}
return eventsResponse.Events[0].Event, nil
diff --git a/federationapi/routing/state.go b/federationapi/routing/state.go
index 5377eb88..1d08d0a8 100644
--- a/federationapi/routing/state.go
+++ b/federationapi/routing/state.go
@@ -135,23 +135,24 @@ func getState(
return nil, nil, &resErr
}
- if !response.StateKnown {
+ switch {
+ case !response.RoomExists:
+ return nil, nil, &util.JSONResponse{
+ Code: http.StatusNotFound,
+ JSON: jsonerror.NotFound("Room not found"),
+ }
+ case !response.StateKnown:
return nil, nil, &util.JSONResponse{
Code: http.StatusNotFound,
JSON: jsonerror.NotFound("State not known"),
}
- }
- if response.IsRejected {
+ case response.IsRejected:
return nil, nil, &util.JSONResponse{
Code: http.StatusNotFound,
JSON: jsonerror.NotFound("Event not found"),
}
}
- if !response.RoomExists {
- return nil, nil, &util.JSONResponse{Code: http.StatusNotFound, JSON: nil}
- }
-
return response.StateEvents, response.AuthChainEvents, nil
}