diff options
| author | metamuffin <metamuffin@disroot.org> | 2022-09-09 14:43:19 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2022-09-09 14:43:19 +0200 | 
| commit | 32373fd18a05663c3bb7d9b1d9fa0a21d909c784 (patch) | |
| tree | 8a165f64f09d5fb40c80bc80951ab4e615021cde /server | |
| parent | d101fb7f77822aac2a3d42ca1529028405cfad0d (diff) | |
| download | keks-meet-32373fd18a05663c3bb7d9b1d9fa0a21d909c784.tar keks-meet-32373fd18a05663c3bb7d9b1d9fa0a21d909c784.tar.bz2 keks-meet-32373fd18a05663c3bb7d9b1d9fa0a21d909c784.tar.zst | |
redirect
Diffstat (limited to 'server')
| -rw-r--r-- | server/src/main.rs | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/server/src/main.rs b/server/src/main.rs index 3787783..dae6662 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -1,17 +1,18 @@  pub mod protocol;  pub mod room; -use hyper::StatusCode; +use hyper::{header, StatusCode, Uri};  use listenfd::ListenFd;  use log::error;  use room::Room;  use std::collections::HashMap;  use std::convert::Infallible; +use std::str::FromStr;  use std::sync::Arc;  use tokio::sync::RwLock;  use warp::hyper::Server;  use warp::ws::WebSocket; -use warp::{Filter, Rejection, Reply}; +use warp::{reply, Filter, Rejection, Reply};  type Rooms = Arc<RwLock<HashMap<String, Arc<Room>>>>; @@ -38,12 +39,21 @@ async fn run() {      let room: _ = warp::path!("room").and(warp::fs::file("../client-web/public/app.html"));      let assets: _ = warp::path("assets").and(warp::fs::dir("../client-web/public/assets"));      let favicon: _ = warp::path!("favicon.ico").map(|| ""); +    let old_format_redirect: _ = warp::path!("room" / String).map(|rname| { +        reply::with_header( +            StatusCode::MOVED_PERMANENTLY, +            header::LOCATION, +            format!("/room#{rname}?warn_redirect=true"), +        ) +        .into_response() +    });      let routes = assets          .or(room)          .or(index)          .or(signaling)          .or(favicon) +        .or(old_format_redirect)          .recover(handle_rejection)          .with(warp::log("stuff")); | 
