Skip to content

Soar v0.2.2

Choose a tag to compare

@myleshorton myleshorton released this 15 Oct 20:08
f0d5504

Fixes

  • The first dial after a pause no longer fails with soar: server lost the session.
    • The bug: an idle client sends nothing, so the server ends its session after its idle timeout (2 minutes) without the client knowing. The client kept the session, and the next stream failed as soon as the server's signed unknown-session answer arrived.
    • Impact: Lantern calls Soar minutes apart, so this cost its first Soar attempt after nearly every pause.
    • The fix: a session with no streams and no authenticated answer for Config.SessionIdle (default 90 s) is retired, and the next dial handshakes again. The check and the close happen under one lock, and a dial that loses that race handshakes again instead of failing. (#13)

Additions

  • Config.SessionIdle sets that limit. Keep it below the server's IdleTimeout.
  • SPEC.md §7.4 now recommends this behavior for clients.

Compatibility

There are no breaking API changes; the new field is optional.

The wire protocol is unchanged: v0.2.2 interoperates with v0.2.x, v0.1.0, and soar-rs clients and servers.

Also in this range

Full changelog: v0.2.1...v0.2.2