From 1d96bccc04a8a40aea2184d271b6dd9facfa5611 Mon Sep 17 00:00:00 2001 From: Nick Vollmar Date: Wed, 13 Nov 2019 14:04:19 -0600 Subject: [PATCH] TUN-2178: public API to create new h2mux.MuxedStreamRequest --- h2mux/h2mux.go | 4 ++-- h2mux/muxwriter.go | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/h2mux/h2mux.go b/h2mux/h2mux.go index 347ad87b..59f722cc 100644 --- a/h2mux/h2mux.go +++ b/h2mux/h2mux.go @@ -390,7 +390,7 @@ func isConnectionClosedError(err error) bool { // Called by proxy server and tunnel func (m *Muxer) OpenStream(ctx context.Context, headers []Header, body io.Reader) (*MuxedStream, error) { stream := m.NewStream(headers) - if err := m.MakeMuxedStreamRequest(ctx, MuxedStreamRequest{stream, body}); err != nil { + if err := m.MakeMuxedStreamRequest(ctx, NewMuxedStreamRequest(stream, body)); err != nil { return nil, err } if err := m.AwaitResponseHeaders(ctx, stream); err != nil { @@ -401,7 +401,7 @@ func (m *Muxer) OpenStream(ctx context.Context, headers []Header, body io.Reader func (m *Muxer) OpenRPCStream(ctx context.Context) (*MuxedStream, error) { stream := m.NewStream(RPCHeaders()) - if err := m.MakeMuxedStreamRequest(ctx, MuxedStreamRequest{stream: stream, body: nil}); err != nil { + if err := m.MakeMuxedStreamRequest(ctx, NewMuxedStreamRequest(stream, nil)); err != nil { return nil, err } if err := m.AwaitResponseHeaders(ctx, stream); err != nil { diff --git a/h2mux/muxwriter.go b/h2mux/muxwriter.go index b0769356..80888d45 100644 --- a/h2mux/muxwriter.go +++ b/h2mux/muxwriter.go @@ -54,6 +54,13 @@ type MuxedStreamRequest struct { body io.Reader } +func NewMuxedStreamRequest(stream *MuxedStream, body io.Reader) MuxedStreamRequest { + return MuxedStreamRequest{ + stream: stream, + body: body, + } +} + func (r *MuxedStreamRequest) flushBody() { io.Copy(r.stream, r.body) r.stream.CloseWrite()