From 04c21dd4afe7dcdd2d015c5a3760e16ef3090c7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Gro=C3=9Fmann?= Date: Wed, 18 Mar 2026 09:38:14 +0100 Subject: [PATCH] fix(chore/ipc): change from ReadWriteCloser to ReadWriter interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Johannes Großmann --- plugin/config_test.go | 2 +- x/ipc/hijack.go | 4 ++-- x/ipc/hijack_test.go | 9 ++++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/plugin/config_test.go b/plugin/config_test.go index 0b1c6cdb..6af76a93 100644 --- a/plugin/config_test.go +++ b/plugin/config_test.go @@ -114,7 +114,7 @@ func Test_newCfgForManualLaunch(t *testing.T) { // as in the context of where this function is used we don't care. func runUncheckedDummyAcceptor(logger logging.Logger, listener net.Listener) { httpMux := http.NewServeMux() - httpMux.Handle(ipc.NewHijackAcceptor(logger, func(context.Context, io.ReadWriteCloser) {})) + httpMux.Handle(ipc.NewHijackAcceptor(logger, func(context.Context, io.ReadWriter) {})) server := &http.Server{Handler: httpMux} go func() { _ = server.Serve(listener) diff --git a/x/ipc/hijack.go b/x/ipc/hijack.go index 579388da..df71bd70 100644 --- a/x/ipc/hijack.go +++ b/x/ipc/hijack.go @@ -95,7 +95,7 @@ type CloseWriter interface { } type hijackHandler struct { - cb func(ctx context.Context, closer io.ReadWriteCloser) + cb func(ctx context.Context, rw io.ReadWriter) ackTimeout time.Duration logger logging.Logger } @@ -163,6 +163,6 @@ func (h *hijackHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { } } -func NewHijackAcceptor(logger logging.Logger, cb func(context.Context, io.ReadWriteCloser)) (string, http.Handler) { +func NewHijackAcceptor(logger logging.Logger, cb func(context.Context, io.ReadWriter)) (string, http.Handler) { return hijackPath, &hijackHandler{logger: logger, cb: cb, ackTimeout: hijackTimeout} } diff --git a/x/ipc/hijack_test.go b/x/ipc/hijack_test.go index 0356f5b7..5ad044b8 100644 --- a/x/ipc/hijack_test.go +++ b/x/ipc/hijack_test.go @@ -39,11 +39,11 @@ func Test_hijacking(t *testing.T) { t.Cleanup(func() { l.Close() }) httpMux := http.NewServeMux() - ch := make(chan io.ReadWriteCloser) + ch := make(chan io.ReadWriter) wait := make(chan struct{}) once := sync.OnceFunc(func() { close(wait) }) defer once() - httpMux.Handle(NewHijackAcceptor(testhelper.TestLogger(t), func(_ context.Context, closer io.ReadWriteCloser) { + httpMux.Handle(NewHijackAcceptor(testhelper.TestLogger(t), func(_ context.Context, closer io.ReadWriter) { ch <- closer <-wait })) @@ -68,7 +68,6 @@ func Test_hijacking(t *testing.T) { assert.Equal(t, "ping", readLine(connServer)) assert.NoError(t, writeLine(connServer, "pong")) assert.Equal(t, "pong", readLine(connHijacked)) - assert.NoError(t, connServer.Close()) assert.NoError(t, connHijacked.Close()) once() @@ -93,7 +92,7 @@ func TestHijackify_hijackRequest_timeout(t *testing.T) { assert.ErrorContains(t, err, "i/o timeout") } -func readLine(conn io.ReadWriteCloser) string { +func readLine(conn io.Reader) string { r := bufio.NewReader(conn) line, err := r.ReadString('\n') if err != nil { @@ -102,7 +101,7 @@ func readLine(conn io.ReadWriteCloser) string { return strings.TrimRight(line, "\r\n ") } -func writeLine(conn io.ReadWriteCloser, line string) error { +func writeLine(conn io.Writer, line string) error { _, err := conn.Write([]byte(line + "\r\n")) return err }