Implement turn server settings

this fills out the infos in /_matrix/client/r0/voip/turnServer with
values specified in the server config
This commit is contained in:
Moritz Bitsch 2021-10-01 15:53:16 +02:00
parent 24a835647c
commit 109892b4b7
3 changed files with 35 additions and 7 deletions

View file

@ -1,4 +1,4 @@
use crate::ConduitResult;
use crate::{database::DatabaseGuard, ConduitResult};
use ruma::api::client::r0::voip::get_turn_server_info;
use std::time::Duration;
@ -9,13 +9,13 @@ use rocket::get;
///
/// TODO: Returns information about the recommended turn server.
#[cfg_attr(feature = "conduit_bin", get("/_matrix/client/r0/voip/turnServer"))]
#[tracing::instrument]
pub async fn turn_server_route() -> ConduitResult<get_turn_server_info::Response> {
#[tracing::instrument(skip(db))]
pub async fn turn_server_route(db: DatabaseGuard) -> ConduitResult<get_turn_server_info::Response> {
Ok(get_turn_server_info::Response {
username: "".to_owned(),
password: "".to_owned(),
uris: Vec::new(),
ttl: Duration::from_secs(60 * 60 * 24),
username: db.globals.turn_username().clone(),
password: db.globals.turn_password().clone(),
uris: db.globals.turn_uris().to_vec(),
ttl: Duration::from_secs(db.globals.turn_ttl()),
}
.into())
}