Stream beets imports over HTTP.

fix(server): enforce HTTP write timeout on non-SSE responses #47

Merged glerp.sullen.net
targeting main from glerp.sullen.net/goosefoot:fix/http-write-timeout
Merged opened by and assigned to glerp.sullen.net
targeting main from glerp.sullen.net/goosefoot:fix/http-write-timeout

Summary #

Enforce WriteTimeout (server.config.SSEWriteTimeout) on http.Server in Server.ListenAndServe (F-06) so zero-window / stalled TCP clients on non-SSE endpoints (GET /health, 401, 404, 400, 409, 429) time out instead of pinning sockets and handler goroutines indefinitely.

Streaming SSE responses (POST /import) continue refreshing per-write deadlines via http.ResponseController.SetWriteDeadline on header flush, heartbeats, and events so healthy streams exceeding WriteTimeout complete unaffected.

Verification #

  • gofmt -l internal/server/server.go internal/server/server_test.go
  • go vet ./...
  • go test -race -count=1 ./...
Commits 0