forked from quic-go/quic-go
http3: keep datagram receive loop running on datagram for unknown stream (#5136)
This commit is contained in:
@@ -308,11 +308,10 @@ func (c *connection) receiveDatagrams() error {
|
|||||||
streamID := protocol.StreamID(4 * quarterStreamID)
|
streamID := protocol.StreamID(4 * quarterStreamID)
|
||||||
c.streamMx.Lock()
|
c.streamMx.Lock()
|
||||||
dg, ok := c.streams[streamID]
|
dg, ok := c.streams[streamID]
|
||||||
|
c.streamMx.Unlock()
|
||||||
if !ok {
|
if !ok {
|
||||||
c.streamMx.Unlock()
|
continue
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
c.streamMx.Unlock()
|
|
||||||
dg.enqueue(b[n:])
|
dg.enqueue(b[n:])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -392,6 +392,7 @@ var _ = Describe("Connection", func() {
|
|||||||
close(delivered)
|
close(delivered)
|
||||||
return b, nil
|
return b, nil
|
||||||
})
|
})
|
||||||
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user