diff options
| author | 2026-03-28 20:07:11 +0000 | |
|---|---|---|
| committer | 2026-03-28 20:07:11 +0000 | |
| commit | 791b4039e4407c92e267cac3031cf1e8999b5013 (patch) | |
| tree | 77d063a86ea7c86ed40ca97d1b8d310ca85db2a4 /network | |
| parent | network: Rename flush (clearly distinguish flushing IO and writing flush pack... (diff) | |
| signature | No signature | |
network/protocol: Flush ChunkWriter properly v0.1.129
Diffstat (limited to 'network')
| -rw-r--r-- | network/protocol/pktline/chunk_writer.go | 5 | ||||
| -rw-r--r-- | network/protocol/sideband64k/chunk_writer.go | 5 | ||||
| -rw-r--r-- | network/protocol/v0v1/server/receivepack/session.go | 3 | ||||
| -rw-r--r-- | network/protocol/v0v1/server/session.go | 24 |
4 files changed, 15 insertions, 22 deletions
diff --git a/network/protocol/pktline/chunk_writer.go b/network/protocol/pktline/chunk_writer.go index b258ff20..3e1a8c36 100644 --- a/network/protocol/pktline/chunk_writer.go +++ b/network/protocol/pktline/chunk_writer.go @@ -63,3 +63,8 @@ func (cw *ChunkWriter) ReadFrom(r io.Reader) (int64, error) { } } } + +// Flush flushes buffered output in the underlying transport. +func (cw *ChunkWriter) Flush() error { + return cw.enc.Flush() +} diff --git a/network/protocol/sideband64k/chunk_writer.go b/network/protocol/sideband64k/chunk_writer.go index f95f75d8..9ee4e9f8 100644 --- a/network/protocol/sideband64k/chunk_writer.go +++ b/network/protocol/sideband64k/chunk_writer.go @@ -62,3 +62,8 @@ func (cw *ChunkWriter) ReadFrom(r io.Reader) (int64, error) { } } } + +// Flush flushes buffered output in the underlying transport. +func (cw *ChunkWriter) Flush() error { + return cw.enc.Flush() +} diff --git a/network/protocol/v0v1/server/receivepack/session.go b/network/protocol/v0v1/server/receivepack/session.go index d7b2a7c5..b4902df4 100644 --- a/network/protocol/v0v1/server/receivepack/session.go +++ b/network/protocol/v0v1/server/receivepack/session.go @@ -2,7 +2,6 @@ package receivepack import ( "fmt" - "io" "strings" "codeberg.org/lindenii/furgit/common/iowrap" @@ -181,7 +180,7 @@ func (session *Session) WriteError(p []byte) error { // ErrorWriter returns one chunking writer for sideband error output. // // When side-band-64k was not negotiated, writes are discarded. -func (session *Session) ErrorWriter() io.Writer { +func (session *Session) ErrorWriter() iowrap.WriteFlusher { return session.base.ErrorWriter() } diff --git a/network/protocol/v0v1/server/session.go b/network/protocol/v0v1/server/session.go index 45e14c92..23818014 100644 --- a/network/protocol/v0v1/server/session.go +++ b/network/protocol/v0v1/server/session.go @@ -97,19 +97,6 @@ func (session *Session) Flush() error { return session.enc.Flush() } -type flushWriter struct { - writer io.Writer - flush func() error -} - -func (w flushWriter) Write(p []byte) (int, error) { - return w.writer.Write(p) -} - -func (w flushWriter) Flush() error { - return w.flush() -} - // ProgressWriter returns one chunking writer for sideband progress output. // // When side-band-64k was not negotiated, writes are discarded. @@ -118,18 +105,15 @@ func (session *Session) ProgressWriter() iowrap.WriteFlusher { return iowrap.NopFlush(io.Discard) } - return flushWriter{ - writer: sideband64k.NewChunkWriter(session.sideband, sideband64k.BandProgress), - flush: session.sideband.Flush, - } + return sideband64k.NewChunkWriter(session.sideband, sideband64k.BandProgress) } // ErrorWriter returns one chunking writer for sideband error output. // // When side-band-64k was not negotiated, writes are discarded. -func (session *Session) ErrorWriter() io.Writer { +func (session *Session) ErrorWriter() iowrap.WriteFlusher { if !session.useSideBand { - return io.Discard + return iowrap.NopFlush(io.Discard) } return sideband64k.NewChunkWriter(session.sideband, sideband64k.BandError) @@ -139,7 +123,7 @@ func (session *Session) ErrorWriter() io.Writer { // // When side-band-64k is enabled, writes are chunked into band-1 sideband // frames. Otherwise writes are chunked into direct pkt-line data frames. -func (session *Session) PrimaryDataWriter() io.Writer { +func (session *Session) PrimaryDataWriter() iowrap.WriteFlusher { if session.useSideBand { return sideband64k.NewChunkWriter(session.sideband, sideband64k.BandData) } |
