forked from quic-go/quic-go
http3: don't expose ClientConn.HandleUnidirectionalStreams (#4695)
This commit is contained in:
@@ -111,7 +111,7 @@ func newClientConn(
|
|||||||
if streamHijacker != nil {
|
if streamHijacker != nil {
|
||||||
go c.handleBidirectionalStreams(streamHijacker)
|
go c.handleBidirectionalStreams(streamHijacker)
|
||||||
}
|
}
|
||||||
go c.connection.HandleUnidirectionalStreams(uniStreamHijacker)
|
go c.connection.handleUnidirectionalStreams(uniStreamHijacker)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ func (c *connection) CloseWithError(code quic.ApplicationErrorCode, msg string)
|
|||||||
return c.Connection.CloseWithError(code, msg)
|
return c.Connection.CloseWithError(code, msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *connection) HandleUnidirectionalStreams(hijack func(StreamType, quic.ConnectionTracingID, quic.ReceiveStream, error) (hijacked bool)) {
|
func (c *connection) handleUnidirectionalStreams(hijack func(StreamType, quic.ConnectionTracingID, quic.ReceiveStream, error) (hijacked bool)) {
|
||||||
var (
|
var (
|
||||||
rcvdControlStr atomic.Bool
|
rcvdControlStr atomic.Bool
|
||||||
rcvdQPACKEncoderStr atomic.Bool
|
rcvdQPACKEncoderStr atomic.Bool
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(conn.ReceivedSettings()).Should(BeClosed())
|
Eventually(conn.ReceivedSettings()).Should(BeClosed())
|
||||||
Expect(conn.Settings().EnableDatagrams).To(BeTrue())
|
Expect(conn.Settings().EnableDatagrams).To(BeTrue())
|
||||||
@@ -85,7 +85,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(closed).Should(BeClosed())
|
Eventually(closed).Should(BeClosed())
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
@@ -123,7 +123,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
})
|
})
|
||||||
@@ -159,7 +159,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
})
|
})
|
||||||
@@ -186,7 +186,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
Eventually(reset).Should(BeClosed())
|
Eventually(reset).Should(BeClosed())
|
||||||
@@ -218,7 +218,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
Eventually(closed).Should(BeClosed())
|
Eventually(closed).Should(BeClosed())
|
||||||
@@ -250,7 +250,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
Eventually(closed).Should(BeClosed())
|
Eventually(closed).Should(BeClosed())
|
||||||
@@ -287,7 +287,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
Eventually(closed).Should(BeClosed())
|
Eventually(closed).Should(BeClosed())
|
||||||
@@ -321,7 +321,7 @@ var _ = Describe("Connection", func() {
|
|||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
defer close(done)
|
defer close(done)
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
Eventually(closed).Should(BeClosed())
|
Eventually(closed).Should(BeClosed())
|
||||||
@@ -363,7 +363,7 @@ var _ = Describe("Connection", func() {
|
|||||||
})
|
})
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
})
|
})
|
||||||
@@ -378,7 +378,7 @@ var _ = Describe("Connection", func() {
|
|||||||
})
|
})
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(done).Should(BeClosed())
|
Eventually(done).Should(BeClosed())
|
||||||
})
|
})
|
||||||
@@ -395,7 +395,7 @@ var _ = Describe("Connection", func() {
|
|||||||
})
|
})
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
Eventually(delivered).Should(BeClosed())
|
Eventually(delivered).Should(BeClosed())
|
||||||
|
|
||||||
@@ -430,7 +430,7 @@ var _ = Describe("Connection", func() {
|
|||||||
qconn.EXPECT().ReceiveDatagram(gomock.Any()).Return(nil, errors.New("test done"))
|
qconn.EXPECT().ReceiveDatagram(gomock.Any()).Return(nil, errors.New("test done"))
|
||||||
go func() {
|
go func() {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
conn.HandleUnidirectionalStreams(nil)
|
conn.handleUnidirectionalStreams(nil)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
data, err := str.ReceiveDatagram(context.Background())
|
data, err := str.ReceiveDatagram(context.Background())
|
||||||
|
|||||||
@@ -526,7 +526,7 @@ func (s *Server) handleConn(conn quic.Connection) error {
|
|||||||
s.Logger,
|
s.Logger,
|
||||||
s.IdleTimeout,
|
s.IdleTimeout,
|
||||||
)
|
)
|
||||||
go hconn.HandleUnidirectionalStreams(s.UniStreamHijacker)
|
go hconn.handleUnidirectionalStreams(s.UniStreamHijacker)
|
||||||
|
|
||||||
var nextStreamID quic.StreamID
|
var nextStreamID quic.StreamID
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
|
|||||||
Reference in New Issue
Block a user