diff options
| author | James Tucker <james@tailscale.com> | 2026-01-05 12:54:41 -0800 |
|---|---|---|
| committer | James Tucker <james@tailscale.com> | 2026-01-05 13:36:03 -0800 |
| commit | e9a28ff0dbe9e32e82bed94261f7f1e5c1df6967 (patch) | |
| tree | eb097844551a8dc584330d75998a88e0263d8253 /tsconst | |
| parent | d451cd54a70152a95ad708592a981cb5e37395a8 (diff) | |
| download | tailscale-raggi/ssh-shutdown.tar.xz tailscale-raggi/ssh-shutdown.zip | |
ssh/tailssh: fix exit-status ordering and improve signal/exit code handlingraggi/ssh-shutdown
Fixes a race where CloseWrite() could be called before Exit(), causing
SSH clients (especially on macOS) to miss the exit status. Simplified
run() to use sync.WaitGroup and guarantee Exit() is sent before EOF per
RFC 4254 section 6.10.
Also:
- Send SIGHUP instead of SIGKILL on session termination
- Use exit code 127 for command not found
- Use exit code 255 for SSH permission/protocol errors
- Use exit code 254 for recording failures
- Complete TCP handlers only after I/O completes
Fixes tailscale/tailscale#18256
Signed-off-by: James Tucker <james@tailscale.com>
Diffstat (limited to 'tsconst')
0 files changed, 0 insertions, 0 deletions
