@@ -29,7 +29,7 @@ keywords = [
|
||||
license = "Apache-2.0"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/matrix-construct/tuwunel"
|
||||
rust-version = "1.91.1"
|
||||
rust-version = "1.94.0"
|
||||
version = "1.5.1"
|
||||
|
||||
[workspace.metadata.crane]
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
file = ./rust-toolchain.toml;
|
||||
|
||||
# See also `rust-toolchain.toml`
|
||||
sha256 = "sha256-SDu4snEWjuZU475PERvu+iO50Mi39KVjqCeJeNvpguU=";
|
||||
sha256 = "sha256-qqF33vNuAdU5vua96VKVIwuc43j4EFeEXbjQ6+l4mO4=";
|
||||
};
|
||||
|
||||
mkScope =
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
# If you're having trouble making the relevant changes, bug a maintainer.
|
||||
|
||||
[toolchain]
|
||||
channel = "1.91.1"
|
||||
channel = "1.94.0"
|
||||
profile = "minimal"
|
||||
components = [
|
||||
# For rust-analyzer
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#![expect(clippy::too_many_arguments)]
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
pub(crate) mod admin;
|
||||
pub(crate) mod context;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#![expect(clippy::toplevel_ref_arg)]
|
||||
#![expect(clippy::duration_suboptimal_units)] // remove after MSRV 1.91
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
pub mod client;
|
||||
pub mod router;
|
||||
|
||||
@@ -61,7 +61,7 @@ pub(crate) async fn get_server_keys_route(
|
||||
}
|
||||
|
||||
fn valid_until_ts() -> MilliSecondsSinceUnixEpoch {
|
||||
let dur = Duration::from_secs(86400 * 7);
|
||||
let dur = Duration::from_hours(168);
|
||||
let timepoint = timepoint_from_now(dur).expect("SystemTime should not overflow");
|
||||
MilliSecondsSinceUnixEpoch::from_system_time(timepoint).expect("UInt should not overflow")
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#![type_length_limit = "12288"]
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
pub mod alloc;
|
||||
pub mod config;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
use criterion::{Criterion, criterion_group, criterion_main};
|
||||
|
||||
criterion_group!(benches, ser_str);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#![type_length_limit = "65536"]
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
extern crate rust_rocksdb as rocksdb;
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
#![expect(clippy::needless_borrows_for_generic_args)]
|
||||
|
||||
use std::fmt::Debug;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
mod admin;
|
||||
mod cargo;
|
||||
mod config;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
use criterion::{Criterion, criterion_group, criterion_main};
|
||||
use tracing::Level;
|
||||
use tuwunel::{Args, Server, runtime};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#![type_length_limit = "4096"] //TODO: reduce me
|
||||
#![expect(clippy::duration_suboptimal_units)] // remove after MSRV 1.91
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
pub mod args;
|
||||
pub mod logging;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
use std::sync::atomic::Ordering;
|
||||
|
||||
use tuwunel::{Server, args, restart, runtime};
|
||||
|
||||
@@ -27,7 +27,7 @@ const WORKER_THREAD_MIN: usize = 2;
|
||||
const BLOCKING_THREAD_KEEPALIVE: u64 = 36;
|
||||
const BLOCKING_THREAD_NAME: &str = "tuwunel:spawned";
|
||||
const BLOCKING_THREAD_MAX: usize = 1024;
|
||||
const RUNTIME_SHUTDOWN_TIMEOUT: Duration = Duration::from_millis(10000);
|
||||
const RUNTIME_SHUTDOWN_TIMEOUT: Duration = Duration::from_secs(10);
|
||||
#[cfg(all(not(target_env = "msvc"), feature = "jemalloc"))]
|
||||
const DISABLE_MUZZY_THRESHOLD: usize = 8;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#![cfg(test)]
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
use insta::{assert_debug_snapshot, with_settings};
|
||||
use tuwunel::{Args, Server, runtime};
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#![cfg(test)]
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
use insta::{assert_debug_snapshot, with_settings};
|
||||
use tuwunel::{Args, Server, runtime};
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#![cfg(test)]
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
use insta::{assert_debug_snapshot, with_settings};
|
||||
use tracing::Level;
|
||||
|
||||
@@ -181,7 +181,7 @@ fn cors_layer(server: &Server) -> CorsLayer {
|
||||
};
|
||||
|
||||
CorsLayer::new()
|
||||
.max_age(Duration::from_secs(86400))
|
||||
.max_age(Duration::from_hours(24))
|
||||
.allow_methods(METHODS)
|
||||
.allow_headers(headers)
|
||||
.allow_origin(allow_origin)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#![type_length_limit = "32768"] //TODO: reduce me
|
||||
#![expect(clippy::duration_suboptimal_units)] // remove after MSRV 1.91
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
mod handle;
|
||||
mod layers;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
use std::{
|
||||
borrow::Borrow,
|
||||
collections::HashMap,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#![recursion_limit = "256"]
|
||||
#![type_length_limit = "98304"]
|
||||
#![expect(refining_impl_trait)]
|
||||
#![expect(clippy::duration_suboptimal_units)] // remove after MSRV 1.91
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
mod manager;
|
||||
mod migrations;
|
||||
|
||||
@@ -112,8 +112,8 @@ impl Resolver {
|
||||
fn configure_opts(server: &Arc<Server>, mut opts: ResolverOpts) -> ResolverOpts {
|
||||
let config = &server.config;
|
||||
|
||||
opts.negative_max_ttl = Some(Duration::from_secs(60 * 60 * 24 * 30));
|
||||
opts.positive_max_ttl = Some(Duration::from_secs(60 * 60 * 24 * 7));
|
||||
opts.negative_max_ttl = Some(Duration::from_hours(720));
|
||||
opts.positive_max_ttl = Some(Duration::from_hours(168));
|
||||
opts.timeout = Duration::from_secs(config.dns_timeout);
|
||||
opts.attempts = config.dns_attempts as usize;
|
||||
opts.try_tcp_on_error = config.dns_tcp_fallback;
|
||||
|
||||
@@ -66,8 +66,8 @@ where
|
||||
.stream()
|
||||
.ready_filter(|(next_id, _)| {
|
||||
let backed_off = self.is_backed_off(next_id, Range {
|
||||
start: Duration::from_secs(5 * 60),
|
||||
end: Duration::from_secs(60 * 60 * 24),
|
||||
start: Duration::from_mins(5),
|
||||
end: Duration::from_hours(24),
|
||||
});
|
||||
|
||||
!backed_off
|
||||
@@ -135,8 +135,8 @@ async fn fetch_auth_chain(
|
||||
}
|
||||
|
||||
if self.is_backed_off(&next_id, Range {
|
||||
start: Duration::from_secs(2 * 60),
|
||||
end: Duration::from_secs(60 * 60 * 8),
|
||||
start: Duration::from_mins(2),
|
||||
end: Duration::from_hours(8),
|
||||
}) {
|
||||
debug_warn!("Backed off from {next_id}");
|
||||
continue;
|
||||
|
||||
@@ -50,8 +50,8 @@ pub(super) async fn handle_prev_pdu(
|
||||
}
|
||||
|
||||
if self.is_backed_off(prev_id, Range {
|
||||
start: Duration::from_secs(5 * 60),
|
||||
end: Duration::from_secs(60 * 60 * 24),
|
||||
start: Duration::from_mins(5),
|
||||
end: Duration::from_hours(24),
|
||||
}) {
|
||||
debug!(?prev_id, "Backing off from prev_event");
|
||||
return Ok(None);
|
||||
|
||||
@@ -59,7 +59,7 @@ impl crate::Service for Service {
|
||||
}
|
||||
|
||||
tokio::select! {
|
||||
() = tokio::time::sleep(Duration::from_secs(60 * 60)) => {},
|
||||
() = tokio::time::sleep(Duration::from_hours(1)) => {},
|
||||
() = self.services.server.until_shutdown() => return Ok(())
|
||||
};
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ pub type PubKeys = PublicKeySet;
|
||||
|
||||
impl crate::Service for Service {
|
||||
fn build(args: &crate::Args<'_>) -> Result<Arc<Self>> {
|
||||
let minimum_valid = Duration::from_secs(3600);
|
||||
let minimum_valid = Duration::from_hours(1);
|
||||
|
||||
let (keypair, verify_keys) = keypair::init(args.db)?;
|
||||
debug_assert!(verify_keys.len() == 1, "only one active verify_key supported");
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
//! Integration tests entrypoint.
|
||||
|
||||
#![allow(unused_features)] // 1.96.0-nightly 2026-03-07 bug
|
||||
|
||||
mod resolve;
|
||||
|
||||
Reference in New Issue
Block a user