mirror of
https://github.com/refraction-networking/uquic.git
synced 2025-04-02 19:57:35 +03:00
uTLS is not yet bumped to the new version, so this commit breaks the dependencies relationship by getting rid of the local replace.
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package quic
|
|
|
|
import (
|
|
"net"
|
|
|
|
"github.com/refraction-networking/uquic/internal/protocol"
|
|
"github.com/refraction-networking/uquic/internal/utils"
|
|
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("Closed local connection", func() {
|
|
It("tells its perspective", func() {
|
|
conn := newClosedLocalConn(nil, protocol.PerspectiveClient, utils.DefaultLogger)
|
|
Expect(conn.getPerspective()).To(Equal(protocol.PerspectiveClient))
|
|
// stop the connection
|
|
conn.shutdown()
|
|
})
|
|
|
|
It("repeats the packet containing the CONNECTION_CLOSE frame", func() {
|
|
written := make(chan net.Addr, 1)
|
|
conn := newClosedLocalConn(
|
|
func(addr net.Addr, _ packetInfo) { written <- addr },
|
|
protocol.PerspectiveClient,
|
|
utils.DefaultLogger,
|
|
)
|
|
addr := &net.UDPAddr{IP: net.IPv4(127, 1, 2, 3), Port: 1337}
|
|
for i := 1; i <= 20; i++ {
|
|
conn.handlePacket(receivedPacket{remoteAddr: addr})
|
|
if i == 1 || i == 2 || i == 4 || i == 8 || i == 16 {
|
|
Expect(written).To(Receive(Equal(addr))) // receive the CONNECTION_CLOSE
|
|
} else {
|
|
Expect(written).ToNot(Receive())
|
|
}
|
|
}
|
|
})
|
|
})
|