rdt-client/server/RdtClient.Service
Antonin Lenfant-Kodia 643a2e3d63 Share one authenticated Synology session across downloads
Init() created a new SynologyClient and logged in for every download. A
many-file download opened dozens of near-simultaneous sessions for one DSM
account; DSM invalidates older session IDs, so in-flight File Station calls
failed with error 119 "SID not found".

Add SynologyClientProvider: a thread-safe cache that authenticates once and
shares the client across downloads (concurrent first calls collapse to a
single login; later calls reuse it; a credential change re-authenticates).
Wrap every Synology call in a session-retry that drops the session and
re-authenticates once on a session error (119/106/107) so an expired SID
self-heals, reading credentials fresh from settings so edits take effect live.

Adds provider unit tests and a downloader test covering the 119 re-auth path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 15:42:10 +02:00
..
BackgroundServices fix(tests): restore parallel execution 2026-05-18 21:30:31 +02:00
Helpers feat(usenet): improve NZB status messages and documentation 2026-05-18 22:37:14 +02:00
Middleware Support SABnzbd API key auth 2026-05-26 21:45:48 +02:00
Properties Added most functionality on the client and serverside 2020-04-04 15:12:04 -06:00
Services Share one authenticated Synology session across downloads 2026-06-15 15:42:10 +02:00
Wrappers Global formatting. 2026-02-11 19:44:49 -07:00
DiConfig.cs no message 2026-05-27 22:03:59 -06:00
GlobalSuppressions.cs Global formatting. 2026-02-11 19:44:49 -07:00
RdtClient.Service.csproj fix: remove usage of GetHashInfoAsync 2026-05-28 14:50:39 +10:00
RdtClient.Service.csproj.user Refactored download processor. 2021-01-09 19:51:36 -07:00