diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/apub/community.rs | 4 | ||||
-rw-r--r-- | server/src/apub/user.rs | 2 | ||||
-rw-r--r-- | server/src/main.rs | 19 | ||||
-rw-r--r-- | server/src/routes/feeds.rs | 7 | ||||
-rw-r--r-- | server/src/routes/nodeinfo.rs | 4 | ||||
-rw-r--r-- | server/src/routes/webfinger.rs | 2 |
6 files changed, 22 insertions, 16 deletions
diff --git a/server/src/apub/community.rs b/server/src/apub/community.rs index 504e1790..fac6088e 100644 --- a/server/src/apub/community.rs +++ b/server/src/apub/community.rs @@ -84,7 +84,7 @@ pub struct CommunityQuery { community_name: String, } -pub fn get_apub_community(info: Path<CommunityQuery>) -> HttpResponse<Body> { +pub async fn get_apub_community(info: Path<CommunityQuery>) -> HttpResponse<Body> { let connection = establish_connection(); if let Ok(community) = Community::read_from_name(&connection, info.community_name.to_owned()) { @@ -96,7 +96,7 @@ pub fn get_apub_community(info: Path<CommunityQuery>) -> HttpResponse<Body> { } } -pub fn get_apub_community_followers(info: Path<CommunityQuery>) -> HttpResponse<Body> { +pub async fn get_apub_community_followers(info: Path<CommunityQuery>) -> HttpResponse<Body> { let connection = establish_connection(); if let Ok(community) = Community::read_from_name(&connection, info.community_name.to_owned()) { diff --git a/server/src/apub/user.rs b/server/src/apub/user.rs index 9de2c36c..cf9a9797 100644 --- a/server/src/apub/user.rs +++ b/server/src/apub/user.rs @@ -61,7 +61,7 @@ pub struct UserQuery { user_name: String, } -pub fn get_apub_user(info: Path<UserQuery>) -> HttpResponse<Body> { +pub async fn get_apub_user(info: Path<UserQuery>) -> HttpResponse<Body> { let connection = establish_connection(); if let Ok(user) = User_::find_by_email_or_username(&connection, &info.user_name) { diff --git a/server/src/main.rs b/server/src/main.rs index 8ee9f4ef..763f540f 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -6,12 +6,13 @@ use actix_web::*; use lemmy_server::db::establish_connection; use lemmy_server::routes::{federation, feeds, index, nodeinfo, webfinger, websocket}; use lemmy_server::settings::Settings; +use std::io; embed_migrations!(); -fn main() { +#[actix_rt::main] +async fn main() -> io::Result<()> { env_logger::init(); - let sys = actix::System::new("lemmy"); // Run the migrations from code let conn = establish_connection(); @@ -19,6 +20,11 @@ fn main() { let settings = Settings::get(); + println!( + "Starting http server at {}:{}", + settings.bind, settings.port + ); + // Create Http server with websocket support HttpServer::new(move || { App::new() @@ -37,10 +43,7 @@ fn main() { settings.front_end_dir.to_owned() + "/documentation", )) }) - .bind((settings.bind, settings.port)) - .unwrap() - .run(); - - println!("Started http server at {}:{}", settings.bind, settings.port); - let _ = sys.run(); + .bind((settings.bind, settings.port))? + .run() + .await } diff --git a/server/src/routes/feeds.rs b/server/src/routes/feeds.rs index 0b2ccac1..ae1631e2 100644 --- a/server/src/routes/feeds.rs +++ b/server/src/routes/feeds.rs @@ -37,7 +37,7 @@ pub fn config(cfg: &mut web::ServiceConfig) { .route("/feeds/all.xml", web::get().to(feeds::get_all_feed)); } -fn get_all_feed(info: web::Query<Params>) -> HttpResponse<Body> { +async fn get_all_feed(info: web::Query<Params>) -> HttpResponse<Body> { let sort_type = match get_sort_type(info) { Ok(sort_type) => sort_type, Err(_) => return HttpResponse::BadRequest().finish(), @@ -53,7 +53,10 @@ fn get_all_feed(info: web::Query<Params>) -> HttpResponse<Body> { } } -fn get_feed(path: web::Path<(String, String)>, info: web::Query<Params>) -> HttpResponse<Body> { +async fn get_feed( + path: web::Path<(String, String)>, + info: web::Query<Params>, +) -> HttpResponse<Body> { let sort_type = match get_sort_type(info) { Ok(sort_type) => sort_type, Err(_) => return HttpResponse::BadRequest().finish(), diff --git a/server/src/routes/nodeinfo.rs b/server/src/routes/nodeinfo.rs index 24659608..2b7135fb 100644 --- a/server/src/routes/nodeinfo.rs +++ b/server/src/routes/nodeinfo.rs @@ -13,7 +13,7 @@ pub fn config(cfg: &mut web::ServiceConfig) { .route("/.well-known/nodeinfo", web::get().to(node_info_well_known)); } -pub fn node_info_well_known() -> HttpResponse<Body> { +async fn node_info_well_known() -> HttpResponse<Body> { let json = json!({ "links": { "rel": "http://nodeinfo.diaspora.software/ns/schema/2.0", @@ -26,7 +26,7 @@ pub fn node_info_well_known() -> HttpResponse<Body> { .body(json.to_string()) } -fn node_info() -> HttpResponse<Body> { +async fn node_info() -> HttpResponse<Body> { let conn = establish_connection(); let site_view = match SiteView::read(&conn) { Ok(site_view) => site_view, diff --git a/server/src/routes/webfinger.rs b/server/src/routes/webfinger.rs index f013f3ef..c538f5b1 100644 --- a/server/src/routes/webfinger.rs +++ b/server/src/routes/webfinger.rs @@ -37,7 +37,7 @@ lazy_static! { /// /// You can also view the webfinger response that Mastodon sends: /// https://radical.town/.well-known/webfinger?resource=acct:felix@radical.town -fn get_webfinger_response(info: Query<Params>) -> HttpResponse<Body> { +async fn get_webfinger_response(info: Query<Params>) -> HttpResponse<Body> { let regex_parsed = WEBFINGER_COMMUNITY_REGEX .captures(&info.resource) .map(|c| c.get(1)); |