From d1d22170199fd5e8827ad71b9cad621e129ba519 Mon Sep 17 00:00:00 2001
From: Jonas Platte <jplatte+git@posteo.de>
Date: Sat, 22 Jan 2022 13:32:21 +0100
Subject: [PATCH] Clean up error handling for
 server_server::get_server_keys_route

---
 src/server_server.rs | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/server_server.rs b/src/server_server.rs
index 5e6fab01..fc3681bd 100644
--- a/src/server_server.rs
+++ b/src/server_server.rs
@@ -516,10 +516,9 @@ pub async fn get_server_version_route(
 /// forever.
 // Response type for this endpoint is Json because we need to calculate a signature for the response
 #[tracing::instrument(skip(db))]
-pub async fn get_server_keys_route(db: DatabaseGuard) -> impl IntoResponse {
+pub async fn get_server_keys_route(db: DatabaseGuard) -> Result<impl IntoResponse> {
     if !db.globals.allow_federation() {
-        // TODO: Use proper types
-        return Json("Federation is disabled.").into_response();
+        return Err(Error::bad_config("Federation is disabled."));
     }
 
     let mut verify_keys: BTreeMap<Box<ServerSigningKeyId>, VerifyKey> = BTreeMap::new();
@@ -557,7 +556,7 @@ pub async fn get_server_keys_route(db: DatabaseGuard) -> impl IntoResponse {
     )
     .unwrap();
 
-    Json(response).into_response()
+    Ok(Json(response))
 }
 
 /// # `GET /_matrix/key/v2/server/{keyId}`