dnsproxytest

package
v0.84.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package dnsproxytest provides test utilities and mock implementations for the dnsproxy module interfaces.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Handler

type Handler struct {
	OnHandle func(ctx context.Context, p *proxy.Proxy, dctx *proxy.DNSContext) (err error)
}

Handler is a mock proxy.Handler implementation for tests.

func (*Handler) ServeDNS

func (h *Handler) ServeDNS(ctx context.Context, p *proxy.Proxy, dctx *proxy.DNSContext) (err error)

ServeDNS implements the proxy.Handler interface for *Handler.

type MessageConstructor

type MessageConstructor struct {
	OnNewMsgNXDOMAIN       func(req *dns.Msg) (resp *dns.Msg)
	OnNewMsgSERVFAIL       func(req *dns.Msg) (resp *dns.Msg)
	OnNewMsgNOTIMPLEMENTED func(req *dns.Msg) (resp *dns.Msg)
	OnNewMsgNODATA         func(req *dns.Msg) (resp *dns.Msg)
	OnNewMsgFORMERR        func(req *dns.Msg) (resp *dns.Msg)
}

MessageConstructor is a mock proxy.MessageConstructor implementation for tests.

func NewMessageConstructor

func NewMessageConstructor() (c *MessageConstructor)

NewMessageConstructor creates a new *MessageConstructor with all its methods set to panic.

func (*MessageConstructor) NewMsgFORMERR

func (c *MessageConstructor) NewMsgFORMERR(req *dns.Msg) (resp *dns.Msg)

NewMsgFORMERR implements the proxy.MessageConstructor interface for *MessageConstructor.

func (*MessageConstructor) NewMsgNODATA

func (c *MessageConstructor) NewMsgNODATA(req *dns.Msg) (resp *dns.Msg)

NewMsgNODATA implements the proxy.MessageConstructor interface for *MessageConstructor.

func (*MessageConstructor) NewMsgNOTIMPLEMENTED

func (c *MessageConstructor) NewMsgNOTIMPLEMENTED(req *dns.Msg) (resp *dns.Msg)

NewMsgNOTIMPLEMENTED implements the proxy.MessageConstructor interface for *MessageConstructor.

func (*MessageConstructor) NewMsgNXDOMAIN

func (c *MessageConstructor) NewMsgNXDOMAIN(req *dns.Msg) (resp *dns.Msg)

NewMsgNXDOMAIN implements the proxy.MessageConstructor interface for *MessageConstructor.

func (*MessageConstructor) NewMsgSERVFAIL

func (c *MessageConstructor) NewMsgSERVFAIL(req *dns.Msg) (resp *dns.Msg)

NewMsgSERVFAIL implements the proxy.MessageConstructor interface for *MessageConstructor.

type Middleware

type Middleware struct {
	OnWrap func(h proxy.Handler) (wrapped proxy.Handler)
}

Middleware is a mock proxy.Middleware implementation for tests.

func (*Middleware) Wrap

func (m *Middleware) Wrap(h proxy.Handler) (wrapped proxy.Handler)

Wrap implements the proxy.Middleware interface for *Middleware.

type QUICTracer

type QUICTracer struct {
	OnTraceForConnection func(
		ctx context.Context,
		isClient bool,
		connID quic.ConnectionID,
	) (trace qlogwriter.Trace)
}

QUICTracer is a mock upstream.QUICTracer implementation for tests.

func (*QUICTracer) TraceForConnection

func (t *QUICTracer) TraceForConnection(
	ctx context.Context,
	isClient bool,
	connID quic.ConnectionID,
) (trace qlogwriter.Trace)

TraceForConnection implements the upstream.QUICTracer interface for *QUICTracer.

type Upstream

type Upstream struct {
	OnAddress  func() (addr string)
	OnExchange func(req *dns.Msg) (resp *dns.Msg, err error)
	OnClose    func() (err error)
}

Upstream is a mock upstream.Upstream implementation for tests.

func (*Upstream) Address

func (u *Upstream) Address() (addr string)

Address implements the upstream.Upstream interface for *Upstream.

func (*Upstream) Close

func (u *Upstream) Close() (err error)

Close implements the upstream.Upstream interface for *Upstream.

func (*Upstream) Exchange

func (u *Upstream) Exchange(req *dns.Msg) (resp *dns.Msg, err error)

Exchange implements the upstream.Upstream interface for *Upstream.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL