Skip to content

Commit

Permalink
Enabled trust-dns and some updates.
Browse files Browse the repository at this point in the history
- Enabled trust-dns feature which seems to help a bit when DNS is
causing long timeouts. Though in the blocking version it is less visible
then on the async branch.
- Updated crates
- Removed some redundant code
- Updated javascript/css libraries

Resolves dani-garcia#2118
Resolves dani-garcia#2119
  • Loading branch information
BlackDex committed Dec 1, 2021
1 parent ead2f02 commit e327583
Show file tree
Hide file tree
Showing 9 changed files with 1,294 additions and 621 deletions.
307 changes: 222 additions & 85 deletions Cargo.lock

Large diffs are not rendered by default.

15 changes: 6 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ rocket = { version = "=0.5.0-dev", features = ["tls"], default-features = false
rocket_contrib = "=0.5.0-dev"

# HTTP client
reqwest = { version = "0.11.6", features = ["blocking", "json", "gzip", "brotli", "socks", "cookies"] }
reqwest = { version = "0.11.7", features = ["blocking", "json", "gzip", "brotli", "socks", "cookies", "trust-dns"] }

# Used for custom short lived cookie jar
cookie = "0.15.1"
cookie_store = "0.15.0"
cookie_store = "0.15.1"
bytes = "1.1.0"
url = "2.2.2"

Expand All @@ -56,7 +56,7 @@ chashmap = "2.2.2"

# A generic serialization/deserialization framework
serde = { version = "1.0.130", features = ["derive"] }
serde_json = "1.0.68"
serde_json = "1.0.72"

# Logging
log = "0.4.14"
Expand Down Expand Up @@ -115,13 +115,13 @@ tracing = { version = "0.1.29", features = ["log"] } # Needed to have lettre tra
lettre = { version = "0.10.0-rc.4", features = ["smtp-transport", "builder", "serde", "native-tls", "hostname", "tracing"], default-features = false }

# Template library
handlebars = { version = "4.1.3", features = ["dir_source"] }
handlebars = { version = "4.1.5", features = ["dir_source"] }

# For favicon extraction from main website
html5ever = "0.25.1"
markup5ever_rcdom = "0.1.0"
regex = { version = "1.5.4", features = ["std", "perf", "unicode-perl"], default-features = false }
data-url = "0.1.0"
data-url = "0.1.1"

# Used by U2F, JWT and Postgres
openssl = "0.10.38"
Expand All @@ -138,16 +138,13 @@ pico-args = "0.4.2"
backtrace = "0.3.63"

# Macro ident concatenation
paste = "1.0.5"
paste = "1.0.6"

[patch.crates-io]
# Use newest ring
rocket = { git = 'https://github.com/SergioBenitez/Rocket', rev = '263e39b5b429de1913ce7e3036575a7b4d88b6d7' }
rocket_contrib = { git = 'https://github.com/SergioBenitez/Rocket', rev = '263e39b5b429de1913ce7e3036575a7b4d88b6d7' }

# For favicon extraction from main website
data-url = { git = 'https://github.com/servo/rust-url', package="data-url", rev = 'eb7330b5296c0d43816d1346211b74182bb4ae37' }

# The maintainer of the `job_scheduler` crate doesn't seem to have responded
# to any issues or PRs for almost a year (as of April 2021). This hopefully
# temporary fork updates Cargo.toml to use more up-to-date dependencies.
Expand Down
6 changes: 3 additions & 3 deletions src/api/admin.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use once_cell::sync::Lazy;
use serde::de::DeserializeOwned;
use serde_json::Value;
use std::{env, time::Duration};
use std::env;

use rocket::{
http::{Cookie, Cookies, SameSite, Status},
Expand Down Expand Up @@ -462,13 +462,13 @@ struct GitCommit {
fn get_github_api<T: DeserializeOwned>(url: &str) -> Result<T, Error> {
let github_api = get_reqwest_client();

Ok(github_api.get(url).timeout(Duration::from_secs(10)).send()?.error_for_status()?.json::<T>()?)
Ok(github_api.get(url).send()?.error_for_status()?.json::<T>()?)
}

fn has_http_access() -> bool {
let http_access = get_reqwest_client();

match http_access.head("https://github.com/dani-garcia/vaultwarden").timeout(Duration::from_secs(10)).send() {
match http_access.head("https://github.com/dani-garcia/vaultwarden").send() {
Ok(r) => r.status().is_success(),
_ => false,
}
Expand Down
10 changes: 10 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,14 @@ fn launch_info() {
}

fn init_logging(level: log::LevelFilter) -> Result<(), fern::InitError> {
// Depending on the main log level we either want to disable or enable logging for trust-dns.
// Else if there are timeouts it will clutter the logs since trust-dns uses warn for this.
let trust_dns_level = if level >= log::LevelFilter::Debug {
level
} else {
log::LevelFilter::Off
};

let mut logger = fern::Dispatch::new()
.level(level)
// Hide unknown certificate errors if using self-signed
Expand All @@ -126,6 +134,8 @@ fn init_logging(level: log::LevelFilter) -> Result<(), fern::InitError> {
.level_for("hyper::client", log::LevelFilter::Off)
// Prevent cookie_store logs
.level_for("cookie_store", log::LevelFilter::Off)
// Variable level for trust-dns used by reqwest
.level_for("trust_dns_proto", trust_dns_level)
.chain(std::io::stdout());

// Enable smtp debug logging only specifically for smtp when need.
Expand Down
Loading

0 comments on commit e327583

Please sign in to comment.