diff --git a/connection/quic.go b/connection/quic.go index 2d0684bc..819d9ec7 100644 --- a/connection/quic.go +++ b/connection/quic.go @@ -122,6 +122,11 @@ func (q *QUICConnection) serveControlStream(ctx context.Context, controlStream q return nil } +// Close closes the session with no errors specified. +func (q *QUICConnection) Close() { + q.session.CloseWithError(0, "") +} + func (q *QUICConnection) acceptStream(ctx context.Context) error { defer q.Close() for { @@ -133,20 +138,17 @@ func (q *QUICConnection) acceptStream(ctx context.Context) error { } return fmt.Errorf("failed to accept QUIC stream: %w", err) } - go func() { - stream := quicpogs.NewSafeStreamCloser(quicStream) - defer stream.Close() - - if err = q.handleStream(stream); err != nil { - q.logger.Err(err).Msg("Failed to handle QUIC stream") - } - }() + go q.runStream(quicStream) } } -// Close closes the session with no errors specified. -func (q *QUICConnection) Close() { - q.session.CloseWithError(0, "") +func (q *QUICConnection) runStream(quicStream quic.Stream) { + stream := quicpogs.NewSafeStreamCloser(quicStream) + defer stream.Close() + + if err := q.handleStream(stream); err != nil { + q.logger.Err(err).Msg("Failed to handle QUIC stream") + } } func (q *QUICConnection) handleStream(stream io.ReadWriteCloser) error {