Keep DNS retry safe for WebSockets and preserve saved user edits
All checks were successful
review/security-claude Blocking finding fixed on 052d0b88; delta reviewed
All checks were successful
review/security-claude Blocking finding fixed on 052d0b88; delta reviewed
This commit is contained in:
parent
327f631f0d
commit
052d0b8898
10 changed files with 144 additions and 17 deletions
|
|
@ -34,14 +34,16 @@ network validation. The existing Wolfskin picker paints the saved names and
|
|||
identity-derived colors, then refreshes the household in the background. PIN and
|
||||
require-login profiles still go through the existing protected sign-in flow.
|
||||
`Users/Me` and `System/Info/Public` now start concurrently; a late launch response
|
||||
cannot replace a different selected person.
|
||||
cannot replace a different selected person. Name revalidation updates only the
|
||||
name column and reloads the saved user, preserving newer settings and PINs.
|
||||
|
||||
Jellyfin, Conductarr, artwork, playback and crash-report clients share one
|
||||
`PersistentDns` instance through the application graph. It keeps system-ordered
|
||||
IPv6/IPv4 answers in memory and `filesDir/wolfskin-dns.json` (at most 32 hosts).
|
||||
IPv6/IPv4 answers in memory and `noBackupFilesDir/wolfskin-dns.json` (at most 32 hosts).
|
||||
Saved answers return immediately for up to 24 hours and refresh off main after
|
||||
60 seconds; failed background lookups back off for 2 seconds without extending
|
||||
the last successful timestamp. Negative answers are not persisted or cached.
|
||||
the last successful timestamp. Unexpected resolver exceptions are contained at
|
||||
the background refresh and warm-up boundaries. Negative answers are not persisted or cached.
|
||||
Missing, oversized or corrupt hint files fall back to system resolution.
|
||||
Application creation warms the saved Jellyfin host and configured Conductarr
|
||||
host on parallel IO jobs; it does not change Android Private DNS.
|
||||
|
|
@ -51,6 +53,8 @@ gets one fresh system lookup and one retry. Responses, read failures and
|
|||
uncertain mutation outcomes are not replayed. Conductarr retains its existing
|
||||
no-automatic-replay policy after a request starts. A DNS refresh changes the next
|
||||
new connection; already-working pooled connections are not forcibly closed.
|
||||
OkHttp's derived WebSocket clients disable event listeners; those calls bypass
|
||||
the HTTP retry bookkeeping while retaining the shared DNS resolver.
|
||||
|
||||
Device acceptance (not established by JVM tests): with saved people present,
|
||||
cold-launch six times more than 60 seconds apart and require the picker within
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue