Versions in this module Expand all Collapse all v0 v0.2.0 Oct 8, 2026 Changes in this version + type PushDebugWriter interface + WritePushChange func(change []dns.RR) v0.1.0 Oct 4, 2026 Changes in this version + var ErrDuplicateSub = errors.New("duplicate Push subscription") + var ErrState = fmt.Errorf("bad DSO state") + var ErrStateClosed = fmt.Errorf("%w - closed", ErrState) + var SessionGracefulCloseTimeout = 5 * time.Second + func AbortConn(conn net.Conn) error + type Push struct + func NewPush(classes, types []uint16) *Push + func (push *Push) Add(id uint16, sub PushSubscribe) + func (push *Push) CanAdd(id uint16, tlv dsomessage.Subscribe) (sub PushSubscribe, rcode uint8, err error) + func (push *Push) IsActive() bool + func (push *Push) Reconfirm(tlv dsomessage.Reconfirm) + func (push *Push) Refresh() + func (push *Push) Remove(tlv dsomessage.Unsubscribe) (dsomessage.Subscribe, bool) + func (push *Push) Serve(ctx context.Context, writer io.Writer, upstream PushLookuper, ...) error + func (push *Push) Subscriptions() iter.Seq[dsomessage.Subscribe] + type PushLookuper interface + LookupPushSubscription func(ctx context.Context, tlv dsomessage.Subscribe) (rrs []dns.RR, ok bool) + type PushSubscribe struct + type Session struct + Conn net.Conn + func New(conn net.Conn) (s *Session) + func (s *Session) Abort() error + func (s *Session) Close() error + func (s *Session) Drain() (err error) + func (s *Session) ReadMsg(deadline time.Time) (msg []byte, err error) + func (s *Session) State() (state State) + func (s *Session) Write(msg []byte) (n int, err error) + type State uint32 + const StateClosed + const StateClosing + const StateEstablished + const StatePending + const StateWaiting + func (s State) String() string