mirror of
https://github.com/fumiama/terasu-cloudflared.git
synced 2026-06-09 04:30:31 +08:00
The lucas-clemente/quic-go package moved namespaces and our branch went stale, this new fork provides support for the new quic-go repo and applies the max datagram frame size change. Until the max datagram frame size support gets upstreamed into quic-go, this can be used to unblock go 1.20 support as the old lucas-clemente/quic-go will not get go 1.20 support.
30 lines
506 B
Go
30 lines
506 B
Go
package ackhandler
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/quic-go/quic-go/internal/wire"
|
|
)
|
|
|
|
type Frame struct {
|
|
wire.Frame // nil if the frame has already been acknowledged in another packet
|
|
OnLost func(wire.Frame)
|
|
OnAcked func(wire.Frame)
|
|
}
|
|
|
|
var framePool = sync.Pool{New: func() any { return &Frame{} }}
|
|
|
|
func GetFrame() *Frame {
|
|
f := framePool.Get().(*Frame)
|
|
f.OnLost = nil
|
|
f.OnAcked = nil
|
|
return f
|
|
}
|
|
|
|
func putFrame(f *Frame) {
|
|
f.Frame = nil
|
|
f.OnLost = nil
|
|
f.OnAcked = nil
|
|
framePool.Put(f)
|
|
}
|