Skip to content

Fix live listener reconfiguration state and obfuscation - #266

Closed
snapetech wants to merge 2 commits into
mainfrom
agent/remove-stale-listener-reconnect
Closed

Fix live listener reconfiguration state and obfuscation#266
snapetech wants to merge 2 commits into
mainfrom
agent/remove-stale-listener-reconnect

Conversation

@snapetech

@snapetech snapetech commented Jul 16, 2026

Copy link
Copy Markdown
Owner

What changed

  • remove RequiresReconnect from soulseek.listen_ip_address and soulseek.listen_port
  • apply live PeerObfuscationOptions patches before listener rebinding
  • update lifecycle and vendored Soulseek.NET regression coverage
  • document both corrected runtime behaviors

Root causes

Application.OptionsMonitor_OnChange ORed the option attributes into PendingReconnect even when SoulseekClient.ReconfigureOptionsAsync(...) returned false. Soulseek.NET already rebinds the regular listener and advertises it without reconnecting.

The vendored Soulseek.NET runtime also omitted PeerObfuscationOptions from both Options.With(...) calls during reconfiguration. A regular port change therefore rebound and advertised the new regular endpoint while retaining the old type-1 listener port and metadata until restart.

Frozen-runtime differentials reproduced both contradictions with a login-capable local Soulseek server and direct socket probes.

Validation

  • dotnet test tests/slskd.Tests.Unit/slskd.Tests.Unit.csproj --filter FullyQualifiedName~ApplicationLifecycleTests -v:minimal — 8 passed
  • dotnet test vendor/slskNet.Runtime/tests/Soulseek.Tests.Unit/Soulseek.Tests.Unit.csproj --filter FullyQualifiedName~ReconfigureOptionsAsyncTests -v:minimal — 29 passed
  • fixed-runtime differential: regular and derived type-1 sockets plus SetListenPort metadata match the candidate implementation; only the intentionally removed stale pendingReconnect state differs
  • git diff --check

@snapetech snapetech changed the title Fix stale reconnect state after live listener rebind Fix live listener reconfiguration state and obfuscation Jul 16, 2026
@snapetech snapetech closed this Jul 17, 2026
@snapetech
snapetech deleted the agent/remove-stale-listener-reconnect branch July 24, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant