From bb34bdd6536ca5bd776780441b7c2fa21232a247 Mon Sep 17 00:00:00 2001 From: glyph Date: Tue, 23 Nov 2021 12:29:58 +0200 Subject: [PATCH 1/9] add auth flag check --- peach-web/src/routes/authentication.rs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/peach-web/src/routes/authentication.rs b/peach-web/src/routes/authentication.rs index 035bde50..7073a0cf 100644 --- a/peach-web/src/routes/authentication.rs +++ b/peach-web/src/routes/authentication.rs @@ -1,3 +1,5 @@ +use std::env; + use log::info; use rocket::form::{Form, FromForm}; use rocket::request::FlashMessage; @@ -42,14 +44,22 @@ impl<'r> FromRequest<'r> for Authenticated { type Error = LoginError; async fn from_request(req: &'r Request<'_>) -> request::Outcome { - let authenticated = req - .cookies() - .get_private(AUTH_COOKIE_KEY) - .and_then(|cookie| cookie.value().parse().ok()) - .map(|_value: String| Authenticated {}); - match authenticated { - Some(auth) => request::Outcome::Success(auth), - None => request::Outcome::Failure((Status::Forbidden, LoginError::UserNotLoggedIn)), + // check for disable auth env var; set to false if unset + let authentication_is_disabled = + env::var("DISABLE_ROCKET_AUTH").unwrap_or_else(|_| "false".to_string()); + if authentication_is_disabled == "true" { + let auth = Authenticated {}; + request::Outcome::Success(auth) + } else { + let authenticated = req + .cookies() + .get_private(AUTH_COOKIE_KEY) + .and_then(|cookie| cookie.value().parse().ok()) + .map(|_value: String| Authenticated {}); + match authenticated { + Some(auth) => request::Outcome::Success(auth), + None => request::Outcome::Failure((Status::Forbidden, LoginError::UserNotLoggedIn)), + } } } } From bc28a84ad4156b71d88435d5d3ee288fe930a2c4 Mon Sep 17 00:00:00 2001 From: glyph Date: Tue, 23 Nov 2021 12:30:09 +0200 Subject: [PATCH 2/9] disable auth for tests --- peach-web/src/tests.rs | 58 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/peach-web/src/tests.rs b/peach-web/src/tests.rs index 712fa38b..0b76f926 100644 --- a/peach-web/src/tests.rs +++ b/peach-web/src/tests.rs @@ -1,3 +1,4 @@ +use std::env; use std::fs::File; use std::io::Read; @@ -9,6 +10,11 @@ use crate::utils::build_json_response; use super::init_rocket; +// helper function to disable authentication +fn disable_auth() { + env::set_var("DISABLE_ROCKET_AUTH", "true") +} + // helper function to test correct retrieval and content of a file fn test_query_file(path: &str, file: T, status: Status) where @@ -39,6 +45,7 @@ fn read_file_content(path: &str) -> Vec { #[test] fn index_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -54,6 +61,7 @@ fn index_html() { #[test] fn help_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/help").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -83,6 +91,7 @@ fn logout_html() { #[test] fn power_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/power").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -116,6 +125,7 @@ fn shutdown() { #[test] fn block() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/scuttlebutt/block") @@ -127,6 +137,7 @@ fn block() { #[test] fn blocks_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/scuttlebutt/blocks").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -137,6 +148,7 @@ fn blocks_html() { #[test] fn follow() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/scuttlebutt/follow") @@ -149,6 +161,7 @@ fn follow() { #[test] fn follows_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/scuttlebutt/follows").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -159,6 +172,7 @@ fn follows_html() { #[test] fn followers_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/scuttlebutt/followers").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -169,6 +183,7 @@ fn followers_html() { #[test] fn friends_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/scuttlebutt/friends").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -179,6 +194,7 @@ fn friends_html() { #[test] fn peers_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/scuttlebutt/peers").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -189,6 +205,7 @@ fn peers_html() { #[test] fn private_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/scuttlebutt/private").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -199,6 +216,7 @@ fn private_html() { #[test] fn profile_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/scuttlebutt/profile").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -209,6 +227,7 @@ fn profile_html() { #[test] fn publish_post() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/scuttlebutt/publish") @@ -220,6 +239,7 @@ fn publish_post() { #[test] fn unfollow() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/scuttlebutt/unfollow") @@ -233,6 +253,7 @@ fn unfollow() { #[test] fn admin_settings_menu_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/admin").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -245,6 +266,7 @@ fn admin_settings_menu_html() { #[test] fn add_admin_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/admin/add").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -258,6 +280,7 @@ fn add_admin_html() { #[test] fn add_admin() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/settings/admin/add") @@ -270,20 +293,22 @@ fn add_admin() { #[test] fn change_password_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/admin/change_password").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); let body = response.into_string().unwrap(); assert!(body.contains("Change Password")); - assert!(body.contains("Old Password")); - assert!(body.contains("Enter New Password")); - assert!(body.contains("Re-Enter New Password")); + assert!(body.contains("Current password")); + assert!(body.contains("New password")); + assert!(body.contains("New password duplicate")); assert!(body.contains("Save")); } #[test] fn configure_admin_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/admin/configure").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -308,6 +333,7 @@ fn forgot_password_html() { #[test] fn network_settings_menu_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -318,6 +344,7 @@ fn network_settings_menu_html() { #[test] fn deploy_ap() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network/ap/activate").dispatch(); // check for 303 status (redirect) @@ -327,6 +354,7 @@ fn deploy_ap() { #[test] fn dns_settings_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network/dns").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -341,6 +369,7 @@ fn dns_settings_html() { #[test] fn list_aps_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network/wifi").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -353,6 +382,7 @@ fn list_aps_html() { // TODO: needs further testing once template has been refactored #[test] fn ap_details_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network/wifi?ssid=Home").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -363,6 +393,7 @@ fn ap_details_html() { #[test] fn deploy_client() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network/wifi/activate").dispatch(); // check for 303 status (redirect) @@ -372,6 +403,7 @@ fn deploy_client() { #[test] fn add_ap_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network/wifi/add").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -386,6 +418,7 @@ fn add_ap_html() { #[test] fn add_ap_ssid_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/settings/network/wifi/add?ssid=Home") @@ -402,6 +435,7 @@ fn add_ap_ssid_html() { #[test] fn add_credentials() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/settings/network/wifi/add") @@ -414,6 +448,7 @@ fn add_credentials() { #[test] fn forget_wifi() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/settings/network/wifi/forget") @@ -426,6 +461,7 @@ fn forget_wifi() { #[test] fn modify_password() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/settings/network/wifi/modify") @@ -438,6 +474,7 @@ fn modify_password() { #[test] fn data_usage_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/network/wifi/usage").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -453,6 +490,7 @@ fn data_usage_html() { #[test] fn scuttlebutt_settings_menu_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/settings/scuttlebutt").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -472,6 +510,7 @@ fn scuttlebutt_settings_menu_html() { #[test] fn status_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/status").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -485,6 +524,7 @@ fn status_html() { #[test] fn network_status_html() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client.get("/status/network").dispatch(); assert_eq!(response.status(), Status::Ok); @@ -502,6 +542,7 @@ fn network_status_html() { #[test] fn activate_ap() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/api/v1/network/activate_ap") @@ -513,6 +554,7 @@ fn activate_ap() { #[test] fn activate_client() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/api/v1/network/activate_client") @@ -524,6 +566,7 @@ fn activate_client() { #[test] fn return_ip() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/api/v1/network/ip") @@ -538,6 +581,7 @@ fn return_ip() { #[test] fn return_rssi() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/api/v1/network/rssi") @@ -551,6 +595,7 @@ fn return_rssi() { #[test] fn return_ssid() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/api/v1/network/ssid") @@ -564,6 +609,7 @@ fn return_ssid() { #[test] fn return_state() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/api/v1/network/state") @@ -579,6 +625,7 @@ fn return_state() { #[test] fn return_status() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/api/v1/network/status") @@ -592,6 +639,7 @@ fn return_status() { #[test] fn scan_networks() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/api/v1/network/wifi") @@ -605,6 +653,7 @@ fn scan_networks() { #[test] fn add_wifi() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/api/v1/network/wifi") @@ -619,6 +668,7 @@ fn add_wifi() { #[test] fn remove_wifi() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/api/v1/network/wifi/forget") @@ -633,6 +683,7 @@ fn remove_wifi() { #[test] fn new_password() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .post("/api/v1/network/wifi/modify") @@ -647,6 +698,7 @@ fn new_password() { #[test] fn ping_pong() { + disable_auth(); let client = Client::tracked(init_rocket()).expect("valid rocket instance"); let response = client .get("/api/v1/ping") From 3325706dcbda64f165dd7c392ce91ce2238800db Mon Sep 17 00:00:00 2001 From: glyph Date: Tue, 23 Nov 2021 12:30:24 +0200 Subject: [PATCH 3/9] document disable auth flag --- peach-web/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/peach-web/README.md b/peach-web/README.md index f8185cdd..c7e9a02f 100644 --- a/peach-web/README.md +++ b/peach-web/README.md @@ -1,6 +1,6 @@ # peach-web -[![Build Status](https://travis-ci.com/peachcloud/peach-web.svg?branch=master)](https://travis-ci.com/peachcloud/peach-web) ![Generic badge](https://img.shields.io/badge/version-0.4.6-.svg) +[![Build Status](https://travis-ci.com/peachcloud/peach-web.svg?branch=master)](https://travis-ci.com/peachcloud/peach-web) ![Generic badge](https://img.shields.io/badge/version-0.4.12-.svg) ## Web Interface for PeachCloud @@ -39,6 +39,10 @@ _Note: Networking functionality requires peach-network microservice to be runnin ### Environment +Authentication is enabled by default. It can be disabled by setting the `DISABLE_ROCKET_AUTH` environment variable to `true`: + +`export DISABLE_ROCKET_AUTH=true` + The web application deployment mode is configured with the `ROCKET_ENV` environment variable: `export ROCKET_ENV=stage` From b59e62f920d1e145fdc450782d8099955a6be4ec Mon Sep 17 00:00:00 2001 From: glyph Date: Tue, 23 Nov 2021 12:30:34 +0200 Subject: [PATCH 4/9] bump crate version --- peach-web/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/peach-web/Cargo.toml b/peach-web/Cargo.toml index c94e96c2..a064a33f 100644 --- a/peach-web/Cargo.toml +++ b/peach-web/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "peach-web" -version = "0.4.11" +version = "0.4.12" authors = ["Andrew Reid "] edition = "2018" description = "peach-web is a web application which provides a web interface for monitoring and interacting with the PeachCloud device. This allows administration of the single-board computer (ie. Raspberry Pi) running PeachCloud, as well as the ssb-server and related plugins." From c2b785f54b49f2fb88e401e9b6a3abebdf435539 Mon Sep 17 00:00:00 2001 From: glyph Date: Thu, 25 Nov 2021 11:12:05 +0200 Subject: [PATCH 5/9] remove unnecessary websocket dependency --- peach-web/Cargo.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/peach-web/Cargo.toml b/peach-web/Cargo.toml index a064a33f..5bc93b3d 100644 --- a/peach-web/Cargo.toml +++ b/peach-web/Cargo.toml @@ -38,17 +38,16 @@ maintenance = { status = "actively-developed" } env_logger = "0.8" log = "0.4" nest = "1.0.0" +openssl = { version = "0.10", features = ["vendored"] } peach-lib = { path = "../peach-lib" } percent-encoding = "2.1.0" +regex = "1" rocket = { version = "0.5.0-rc.1", features = ["json", "secrets"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" snafu = "0.6" tera = { version = "1.12.1", features = ["builtins"] } -websocket = "0.26" -regex = "1" xdg = "2.2.0" -openssl = { version = "0.10", features = ["vendored"] } [dependencies.rocket_dyn_templates] version = "0.1.0-rc.1" From 35ff408365a8b9267c6a843f169cc132fb52c960 Mon Sep 17 00:00:00 2001 From: glyph Date: Thu, 25 Nov 2021 11:12:50 +0200 Subject: [PATCH 6/9] use rocket config to (en|dis)able auth --- peach-web/Rocket.toml | 2 ++ peach-web/src/routes/authentication.rs | 29 ++++++++++++++------------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/peach-web/Rocket.toml b/peach-web/Rocket.toml index d8fe73c3..d46d8fb6 100644 --- a/peach-web/Rocket.toml +++ b/peach-web/Rocket.toml @@ -1,5 +1,7 @@ [development] template_dir = "templates/" +disable_auth = true [production] template_dir = "templates/" +disable_auth = false diff --git a/peach-web/src/routes/authentication.rs b/peach-web/src/routes/authentication.rs index 7073a0cf..2743e198 100644 --- a/peach-web/src/routes/authentication.rs +++ b/peach-web/src/routes/authentication.rs @@ -1,12 +1,13 @@ -use std::env; - use log::info; use rocket::form::{Form, FromForm}; -use rocket::request::FlashMessage; +use rocket::http::{Cookie, CookieJar, Status}; +use rocket::request::{self, FlashMessage, FromRequest, Request}; use rocket::response::{Flash, Redirect}; -use rocket::serde::json::Json; -use rocket::serde::{Deserialize, Serialize}; -use rocket::{get, post}; +use rocket::serde::{ + json::{Json, Value}, + Deserialize, Serialize, +}; +use rocket::{get, post, Config}; use rocket_dyn_templates::Template; use peach_lib::error::PeachError; @@ -14,9 +15,6 @@ use peach_lib::password_utils; use crate::error::PeachWebError; use crate::utils::{build_json_response, TemplateOrRedirect}; -use rocket::http::{Cookie, CookieJar, Status}; -use rocket::request::{self, FromRequest, Request}; -use rocket::serde::json::Value; // HELPERS AND STRUCTS FOR AUTHENTICATION WITH COOKIES @@ -44,10 +42,15 @@ impl<'r> FromRequest<'r> for Authenticated { type Error = LoginError; async fn from_request(req: &'r Request<'_>) -> request::Outcome { - // check for disable auth env var; set to false if unset - let authentication_is_disabled = - env::var("DISABLE_ROCKET_AUTH").unwrap_or_else(|_| "false".to_string()); - if authentication_is_disabled == "true" { + // check for `disable_auth` config value; set to `false` if unset + // can be set via the `ROCKET_DISABLE_AUTH` environment variable + // - env var, if set, takes precedence over value defined in `Rocket.toml` + let authentication_is_disabled: bool = match Config::figment().find_value("disable_auth") { + // deserialize the boolean value; set to `false` if an error is encountered + Ok(value) => value.deserialize().unwrap_or(false), + Err(_) => false, + }; + if authentication_is_disabled { let auth = Authenticated {}; request::Outcome::Success(auth) } else { From 5c4ef4a529ec9ef6e26e868162230b269db35b59 Mon Sep 17 00:00:00 2001 From: glyph Date: Thu, 25 Nov 2021 11:15:39 +0200 Subject: [PATCH 7/9] update auth docs --- peach-web/README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/peach-web/README.md b/peach-web/README.md index c7e9a02f..018ab8d7 100644 --- a/peach-web/README.md +++ b/peach-web/README.md @@ -39,9 +39,7 @@ _Note: Networking functionality requires peach-network microservice to be runnin ### Environment -Authentication is enabled by default. It can be disabled by setting the `DISABLE_ROCKET_AUTH` environment variable to `true`: - -`export DISABLE_ROCKET_AUTH=true` +**Deployment Mode** The web application deployment mode is configured with the `ROCKET_ENV` environment variable: @@ -49,6 +47,14 @@ The web application deployment mode is configured with the `ROCKET_ENV` environm Other deployment modes are `dev` and `prod`. Read the [Rocket Environment Configurations docs](https://rocket.rs/v0.5-rc/guide/configuration/#environment-variables) for further information. +**Authentication** + +Authentication is disabled in `development` mode and enabled by default when running the application in `production` mode. It can be disabled by setting the `ROCKET_DISABLE_AUTH` environment variable to `true`: + +`export ROCKET_DISABLE_AUTH=true` + +**Logging** + Logging is made available with `env_logger`: `export RUST_LOG=info` From d760f9f92c88e9c4ed1b32f586ac37916495b74e Mon Sep 17 00:00:00 2001 From: glyph Date: Thu, 25 Nov 2021 11:33:09 +0200 Subject: [PATCH 8/9] add init_rocket test wrapper --- peach-web/src/tests.rs | 166 ++++++++++++++++------------------------- 1 file changed, 63 insertions(+), 103 deletions(-) diff --git a/peach-web/src/tests.rs b/peach-web/src/tests.rs index 0b76f926..e95c794c 100644 --- a/peach-web/src/tests.rs +++ b/peach-web/src/tests.rs @@ -1,18 +1,24 @@ -use std::env; use std::fs::File; use std::io::Read; use rocket::http::{ContentType, Status}; use rocket::local::blocking::Client; use rocket::serde::json::{json, Value}; +use rocket::{Build, Config, Rocket}; use crate::utils::build_json_response; use super::init_rocket; -// helper function to disable authentication -fn disable_auth() { - env::set_var("DISABLE_ROCKET_AUTH", "true") +// define authentication mode +const DISABLE_AUTH: bool = true; + +/// Wrapper around `init_rocket()` to simplify the process of invoking the application with the desired authentication status. This is particularly useful for testing purposes. +fn init_test_rocket(disable_auth: bool) -> Rocket { + // set authentication based on provided `disable_auth` value + Config::figment().merge(("disable_auth", disable_auth)); + + init_rocket() } // helper function to test correct retrieval and content of a file @@ -20,7 +26,7 @@ fn test_query_file(path: &str, file: T, status: Status) where T: Into>, { - let client = Client::tracked(init_rocket()).unwrap(); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).unwrap(); let response = client.get(path).dispatch(); assert_eq!(response.status(), status); @@ -45,8 +51,7 @@ fn read_file_content(path: &str) -> Vec { #[test] fn index_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -61,8 +66,7 @@ fn index_html() { #[test] fn help_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/help").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -72,7 +76,7 @@ fn help_html() { #[test] fn login_html() { - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/login").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -82,7 +86,7 @@ fn login_html() { #[test] fn logout_html() { - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/logout").dispatch(); // check for 303 status (redirect to "/login") assert_eq!(response.status(), Status::SeeOther); @@ -91,8 +95,7 @@ fn logout_html() { #[test] fn power_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/power").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -106,7 +109,7 @@ NOTE: these tests are comment-out for the moment, due to the fact that they invo #[test] fn reboot() { - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/power/reboot").dispatch(); // check for redirect assert_eq!(response.status(), Status::SeeOther); @@ -114,7 +117,7 @@ fn reboot() { #[test] fn shutdown() { - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/power/shutdown").dispatch(); // check for redirect assert_eq!(response.status(), Status::SeeOther); @@ -125,8 +128,7 @@ fn shutdown() { #[test] fn block() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/scuttlebutt/block") .header(ContentType::Form) @@ -137,8 +139,7 @@ fn block() { #[test] fn blocks_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/scuttlebutt/blocks").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -148,8 +149,7 @@ fn blocks_html() { #[test] fn follow() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/scuttlebutt/follow") .header(ContentType::Form) @@ -161,8 +161,7 @@ fn follow() { #[test] fn follows_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/scuttlebutt/follows").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -172,8 +171,7 @@ fn follows_html() { #[test] fn followers_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/scuttlebutt/followers").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -183,8 +181,7 @@ fn followers_html() { #[test] fn friends_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/scuttlebutt/friends").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -194,8 +191,7 @@ fn friends_html() { #[test] fn peers_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/scuttlebutt/peers").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -205,8 +201,7 @@ fn peers_html() { #[test] fn private_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/scuttlebutt/private").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -216,8 +211,7 @@ fn private_html() { #[test] fn profile_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/scuttlebutt/profile").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -227,8 +221,7 @@ fn profile_html() { #[test] fn publish_post() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/scuttlebutt/publish") .header(ContentType::Form) @@ -239,8 +232,7 @@ fn publish_post() { #[test] fn unfollow() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/scuttlebutt/unfollow") .header(ContentType::Form) @@ -253,8 +245,7 @@ fn unfollow() { #[test] fn admin_settings_menu_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/admin").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -266,8 +257,7 @@ fn admin_settings_menu_html() { #[test] fn add_admin_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/admin/add").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -280,8 +270,7 @@ fn add_admin_html() { #[test] fn add_admin() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/settings/admin/add") .header(ContentType::Form) @@ -293,8 +282,7 @@ fn add_admin() { #[test] fn change_password_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/admin/change_password").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -308,8 +296,7 @@ fn change_password_html() { #[test] fn configure_admin_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/admin/configure").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -321,7 +308,7 @@ fn configure_admin_html() { #[test] fn forgot_password_html() { - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/admin/forgot_password").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -333,8 +320,7 @@ fn forgot_password_html() { #[test] fn network_settings_menu_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -344,8 +330,7 @@ fn network_settings_menu_html() { #[test] fn deploy_ap() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network/ap/activate").dispatch(); // check for 303 status (redirect) assert_eq!(response.status(), Status::SeeOther); @@ -354,8 +339,7 @@ fn deploy_ap() { #[test] fn dns_settings_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network/dns").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -369,8 +353,7 @@ fn dns_settings_html() { #[test] fn list_aps_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network/wifi").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -382,8 +365,7 @@ fn list_aps_html() { // TODO: needs further testing once template has been refactored #[test] fn ap_details_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network/wifi?ssid=Home").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -393,8 +375,7 @@ fn ap_details_html() { #[test] fn deploy_client() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network/wifi/activate").dispatch(); // check for 303 status (redirect) assert_eq!(response.status(), Status::SeeOther); @@ -403,8 +384,7 @@ fn deploy_client() { #[test] fn add_ap_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network/wifi/add").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -418,8 +398,7 @@ fn add_ap_html() { #[test] fn add_ap_ssid_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/settings/network/wifi/add?ssid=Home") .dispatch(); @@ -435,8 +414,7 @@ fn add_ap_ssid_html() { #[test] fn add_credentials() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/settings/network/wifi/add") .header(ContentType::Form) @@ -448,8 +426,7 @@ fn add_credentials() { #[test] fn forget_wifi() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/settings/network/wifi/forget") .header(ContentType::Form) @@ -461,8 +438,7 @@ fn forget_wifi() { #[test] fn modify_password() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/settings/network/wifi/modify") .header(ContentType::Form) @@ -474,8 +450,7 @@ fn modify_password() { #[test] fn data_usage_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/network/wifi/usage").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -490,8 +465,7 @@ fn data_usage_html() { #[test] fn scuttlebutt_settings_menu_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/settings/scuttlebutt").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -510,8 +484,7 @@ fn scuttlebutt_settings_menu_html() { #[test] fn status_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/status").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -524,8 +497,7 @@ fn status_html() { #[test] fn network_status_html() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client.get("/status/network").dispatch(); assert_eq!(response.status(), Status::Ok); assert_eq!(response.content_type(), Some(ContentType::HTML)); @@ -542,8 +514,7 @@ fn network_status_html() { #[test] fn activate_ap() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/api/v1/network/activate_ap") .header(ContentType::JSON) @@ -554,8 +525,7 @@ fn activate_ap() { #[test] fn activate_client() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/api/v1/network/activate_client") .header(ContentType::JSON) @@ -566,8 +536,7 @@ fn activate_client() { #[test] fn return_ip() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/api/v1/network/ip") .header(ContentType::JSON) @@ -581,8 +550,7 @@ fn return_ip() { #[test] fn return_rssi() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/api/v1/network/rssi") .header(ContentType::JSON) @@ -595,8 +563,7 @@ fn return_rssi() { #[test] fn return_ssid() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/api/v1/network/ssid") .header(ContentType::JSON) @@ -609,8 +576,7 @@ fn return_ssid() { #[test] fn return_state() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/api/v1/network/state") .header(ContentType::JSON) @@ -625,8 +591,7 @@ fn return_state() { #[test] fn return_status() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/api/v1/network/status") .header(ContentType::JSON) @@ -639,8 +604,7 @@ fn return_status() { #[test] fn scan_networks() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/api/v1/network/wifi") .header(ContentType::JSON) @@ -653,8 +617,7 @@ fn scan_networks() { #[test] fn add_wifi() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/api/v1/network/wifi") .header(ContentType::JSON) @@ -668,8 +631,7 @@ fn add_wifi() { #[test] fn remove_wifi() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/api/v1/network/wifi/forget") .header(ContentType::JSON) @@ -683,8 +645,7 @@ fn remove_wifi() { #[test] fn new_password() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .post("/api/v1/network/wifi/modify") .header(ContentType::JSON) @@ -698,8 +659,7 @@ fn new_password() { #[test] fn ping_pong() { - disable_auth(); - let client = Client::tracked(init_rocket()).expect("valid rocket instance"); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).expect("valid rocket instance"); let response = client .get("/api/v1/ping") .header(ContentType::JSON) @@ -761,7 +721,7 @@ fn invalid_path() { #[test] fn invalid_get_request() { - let client = Client::tracked(init_rocket()).unwrap(); + let client = Client::tracked(init_test_rocket(DISABLE_AUTH)).unwrap(); // try to get a path that doesn't exist let res = client From adc1a5bd772bf51b907fa4e0c77b8507cfbcd331 Mon Sep 17 00:00:00 2001 From: glyph Date: Thu, 25 Nov 2021 11:33:25 +0200 Subject: [PATCH 9/9] update lockfile --- Cargo.lock | 202 +++-------------------------------------------------- 1 file changed, 9 insertions(+), 193 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index be13e3b7..b0ba30b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -204,15 +204,6 @@ dependencies = [ "safemem", ] -[[package]] -name = "base64" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" -dependencies = [ - "byteorder", -] - [[package]] name = "base64" version = "0.13.0" @@ -473,22 +464,6 @@ dependencies = [ "version_check 0.9.3", ] -[[package]] -name = "core-foundation" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - [[package]] name = "cpufeatures" version = "0.2.1" @@ -1339,25 +1314,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.10.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273" -dependencies = [ - "base64 0.9.3", - "httparse", - "language-tags", - "log 0.3.9", - "mime 0.2.6", - "num_cpus", - "time 0.1.44", - "traitobject", - "typeable", - "unicase 1.4.2", - "url", -] - [[package]] name = "hyper" version = "0.11.27" @@ -1372,7 +1328,7 @@ dependencies = [ "iovec", "language-tags", "log 0.4.14", - "mime 0.3.16", + "mime", "net2", "percent-encoding 1.0.1", "relay", @@ -1381,7 +1337,7 @@ dependencies = [ "tokio-io", "tokio-proto", "tokio-service", - "unicase 2.6.0", + "unicase", "want 0.0.4", ] @@ -1674,7 +1630,7 @@ dependencies = [ "jsonrpc-server-utils 11.0.0", "log 0.4.14", "net2", - "unicase 2.6.0", + "unicase", ] [[package]] @@ -1690,7 +1646,7 @@ dependencies = [ "log 0.4.14", "net2", "parking_lot 0.11.2", - "unicase 2.6.0", + "unicase", ] [[package]] @@ -1734,7 +1690,7 @@ dependencies = [ "num_cpus", "tokio 0.1.22", "tokio-codec", - "unicase 2.6.0", + "unicase", ] [[package]] @@ -1752,7 +1708,7 @@ dependencies = [ "tokio 1.13.0", "tokio-stream", "tokio-util", - "unicase 2.6.0", + "unicase", ] [[package]] @@ -1972,15 +1928,6 @@ dependencies = [ "autocfg 1.0.1", ] -[[package]] -name = "mime" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" -dependencies = [ - "log 0.3.9", -] - [[package]] name = "mime" version = "0.3.16" @@ -2119,7 +2066,7 @@ dependencies = [ "http 0.2.5", "httparse", "log 0.4.14", - "mime 0.3.16", + "mime", "spin", "tokio 1.13.0", "tokio-util", @@ -2127,24 +2074,6 @@ dependencies = [ "version_check 0.9.3", ] -[[package]] -name = "native-tls" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" -dependencies = [ - "lazy_static", - "libc", - "log 0.4.14", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nb" version = "0.1.3" @@ -2409,12 +2338,6 @@ dependencies = [ "openssl-sys", ] -[[package]] -name = "openssl-probe" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" - [[package]] name = "openssl-src" version = "300.0.2+3.0.0" @@ -2693,7 +2616,7 @@ dependencies = [ [[package]] name = "peach-web" -version = "0.4.11" +version = "0.4.12" dependencies = [ "env_logger 0.8.4", "log 0.4.14", @@ -2708,7 +2631,6 @@ dependencies = [ "serde_json", "snafu 0.6.10", "tera", - "websocket", "xdg", ] @@ -3366,7 +3288,7 @@ dependencies = [ "indexmap", "log 0.4.14", "memchr", - "mime 0.3.16", + "mime", "parking_lot 0.11.2", "pear", "percent-encoding 2.1.0", @@ -3469,16 +3391,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schannel" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" -dependencies = [ - "lazy_static", - "winapi 0.3.9", -] - [[package]] name = "scoped-tls" version = "0.1.2" @@ -3503,29 +3415,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "security-framework" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "0.1.20" @@ -4433,17 +4322,6 @@ dependencies = [ "tokio-executor", ] -[[package]] -name = "tokio-tls" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" -dependencies = [ - "futures 0.1.31", - "native-tls", - "tokio-io", -] - [[package]] name = "tokio-udp" version = "0.1.6" @@ -4582,12 +4460,6 @@ dependencies = [ "tracing-serde", ] -[[package]] -name = "traitobject" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" - [[package]] name = "try-lock" version = "0.1.0" @@ -4610,12 +4482,6 @@ dependencies = [ "unchecked-index", ] -[[package]] -name = "typeable" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" - [[package]] name = "typenum" version = "1.14.0" @@ -4703,15 +4569,6 @@ dependencies = [ "unic-common", ] -[[package]] -name = "unicase" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" -dependencies = [ - "version_check 0.1.5", -] - [[package]] name = "unicase" version = "2.6.0" @@ -4920,47 +4777,6 @@ version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" -[[package]] -name = "websocket" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723abe6b75286edc51d8ecabb38a2353f62a9e9b0588998b59111474f1dcd637" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "hyper 0.10.16", - "native-tls", - "rand 0.6.5", - "tokio-codec", - "tokio-io", - "tokio-reactor", - "tokio-tcp", - "tokio-tls", - "unicase 1.4.2", - "url", - "websocket-base", -] - -[[package]] -name = "websocket-base" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f3fd505ff930da84156389639932955fb09705b3dccd1a3d60c8e7ff62776" -dependencies = [ - "base64 0.10.1", - "bitflags 1.3.2", - "byteorder", - "bytes 0.4.12", - "futures 0.1.31", - "native-tls", - "rand 0.6.5", - "sha-1", - "tokio-codec", - "tokio-io", - "tokio-tcp", - "tokio-tls", -] - [[package]] name = "winapi" version = "0.2.8"