diff --git a/modules/federation/backfill.cc b/modules/federation/backfill.cc index b88d6ffdf..7cf7ced06 100644 --- a/modules/federation/backfill.cc +++ b/modules/federation/backfill.cc @@ -67,6 +67,12 @@ resource::response get__backfill(client &client, const resource::request &request) { + if(request.parv.size() < 1) + throw m::NEED_MORE_PARAMS + { + "room_id path parameter required" + }; + m::room::id::buf room_id { url::decode(room_id, request.parv[0]) diff --git a/modules/federation/backfill_ids.cc b/modules/federation/backfill_ids.cc index f229f9b50..d3801a7f4 100644 --- a/modules/federation/backfill_ids.cc +++ b/modules/federation/backfill_ids.cc @@ -63,6 +63,12 @@ resource::response get__backfill_ids(client &client, const resource::request &request) { + if(request.parv.size() < 1) + throw m::NEED_MORE_PARAMS + { + "room_id path parameter required" + }; + m::room::id::buf room_id { url::decode(room_id, request.parv[0]) diff --git a/modules/federation/event.cc b/modules/federation/event.cc index 1573bac69..b8d49dcbe 100644 --- a/modules/federation/event.cc +++ b/modules/federation/event.cc @@ -33,6 +33,12 @@ resource::response handle_get(client &client, const resource::request &request) { + if(request.parv.size() < 1) + throw m::NEED_MORE_PARAMS + { + "event_id path parameter required." + }; + m::event::id::buf event_id { url::decode(event_id, request.parv[0]) diff --git a/modules/federation/send.cc b/modules/federation/send.cc index 32cc3f4cf..3acb26aea 100644 --- a/modules/federation/send.cc +++ b/modules/federation/send.cc @@ -93,6 +93,12 @@ resource::response handle_put(client &client, const resource::request::object &request) { + if(request.parv.size() < 1) + throw m::NEED_MORE_PARAMS + { + "txn_id path parameter required" + }; + const auto txn_id { request.parv[0] diff --git a/modules/federation/state.cc b/modules/federation/state.cc index 7dbe51c52..dd79517bb 100644 --- a/modules/federation/state.cc +++ b/modules/federation/state.cc @@ -37,6 +37,12 @@ resource::response get__state(client &client, const resource::request &request) { + if(request.parv.size() < 1) + throw m::NEED_MORE_PARAMS + { + "room_id path parameter required" + }; + m::room::id::buf room_id { url::decode(room_id, request.parv[0]) diff --git a/modules/federation/state_ids.cc b/modules/federation/state_ids.cc index ae063ef2e..fde175b31 100644 --- a/modules/federation/state_ids.cc +++ b/modules/federation/state_ids.cc @@ -30,6 +30,12 @@ resource::response get__state_ids(client &client, const resource::request &request) { + if(request.parv.size() < 1) + throw m::NEED_MORE_PARAMS + { + "room_id path parameter required" + }; + m::room::id::buf room_id { url::decode(room_id, request.parv[0]) diff --git a/modules/federation/user_devices.cc b/modules/federation/user_devices.cc index 452db5878..d66627bb0 100644 --- a/modules/federation/user_devices.cc +++ b/modules/federation/user_devices.cc @@ -51,7 +51,7 @@ get__user_devices(client &client, m::user::id::buf user_id { - url::decode(user_id, request.parv[1]) + url::decode(user_id, request.parv[0]) }; return resource::response