mirror of
https://github.com/freemkv/freemkv-keysources.git
synced 2026-10-07 18:13:11 +00:00
Compare commits
5
Commits
v1.8.0-rc4
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db3b78e1f9 | ||
|
|
f44de130b6 | ||
|
|
c562bfbad0 | ||
|
|
bd07927292 | ||
|
|
49348eab2d |
@@ -1,5 +1,17 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [1.8.2] — Unreleased
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- The online source logs its connection-slot wait and DNS time before each request.
|
||||||
|
|
||||||
|
## [1.8.1] — 2026-10-07
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Unit tests live in `*_tests.rs` side files. No behaviour change.
|
||||||
|
|
||||||
## [1.8.0] — 2026-10-05
|
## [1.8.0] — 2026-10-05
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
+3
-3
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "freemkv-keysources"
|
name = "freemkv-keysources"
|
||||||
version = "1.8.0"
|
version = "1.8.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.88"
|
rust-version = "1.88"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
@@ -49,8 +49,8 @@ codegen-units = 1
|
|||||||
# overrides it with a path patch via the gitignored .cargo/config.toml (a
|
# overrides it with a path patch via the gitignored .cargo/config.toml (a
|
||||||
# config-level [patch.crates-io] wins over this manifest one for the same crate).
|
# config-level [patch.crates-io] wins over this manifest one for the same crate).
|
||||||
[patch.crates-io]
|
[patch.crates-io]
|
||||||
libfreemkv = { git = "https://github.com/freemkv/libfreemkv", tag = "v1.8.0" }
|
libfreemkv = { git = "https://github.com/freemkv/libfreemkv", tag = "v1.8.1" }
|
||||||
freemkv-unlock = { git = "https://github.com/freemkv/freemkv-unlock", tag = "v1.8.0" }
|
freemkv-unlock = { git = "https://github.com/freemkv/freemkv-unlock", tag = "v1.8.1" }
|
||||||
|
|
||||||
[lints.clippy]
|
[lints.clippy]
|
||||||
uninlined_format_args = "allow"
|
uninlined_format_args = "allow"
|
||||||
|
|||||||
+16
-1
@@ -517,7 +517,9 @@ fn run_on_worker(
|
|||||||
halt: &Halt,
|
halt: &Halt,
|
||||||
work: impl FnOnce() -> WorkerOutcome + Send + 'static,
|
work: impl FnOnce() -> WorkerOutcome + Send + 'static,
|
||||||
) -> Result<Vec<UnitKey>, Error> {
|
) -> Result<Vec<UnitKey>, Error> {
|
||||||
|
let waited = std::time::Instant::now();
|
||||||
let slot = acquire_query_slot(host, halt)?;
|
let slot = acquire_query_slot(host, halt)?;
|
||||||
|
tracing::info!(target: "freemkv::keysource", phase = "keyserver_slot", waited_ms = waited.elapsed().as_millis() as u64, "key-service connection slot acquired");
|
||||||
let (tx, rx) = mpsc::channel();
|
let (tx, rx) = mpsc::channel();
|
||||||
let spawned = std::thread::Builder::new()
|
let spawned = std::thread::Builder::new()
|
||||||
.name("keysource-online".into())
|
.name("keysource-online".into())
|
||||||
@@ -788,7 +790,20 @@ impl PostJob {
|
|||||||
None => resolve_and_guard(&self.url),
|
None => resolve_and_guard(&self.url),
|
||||||
};
|
};
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
let guarded = resolve_and_guard(&self.url);
|
let guarded = {
|
||||||
|
let t0 = std::time::Instant::now();
|
||||||
|
let g = resolve_and_guard(&self.url);
|
||||||
|
// Count only: the addresses themselves are never logged.
|
||||||
|
tracing::info!(
|
||||||
|
target: "freemkv::keysource",
|
||||||
|
phase = "keyserver_dns",
|
||||||
|
ok = g.is_ok(),
|
||||||
|
addrs = g.as_ref().map(|a| a.len()).unwrap_or(0),
|
||||||
|
elapsed_ms = t0.elapsed().as_millis() as u64,
|
||||||
|
"key-service host resolved"
|
||||||
|
);
|
||||||
|
g
|
||||||
|
};
|
||||||
// Resolve + SSRF-guard the host just before the POST and pin the validated addresses,
|
// Resolve + SSRF-guard the host just before the POST and pin the validated addresses,
|
||||||
// so a DNS rebind after config time can't redirect the request to an internal host.
|
// so a DNS rebind after config time can't redirect the request to an internal host.
|
||||||
let pinned = match guarded {
|
let pinned = match guarded {
|
||||||
|
|||||||
Reference in New Issue
Block a user