dns

package
v0.27.3 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2024 License: BSD-3-Clause Imports: 42 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrUnknownOsManagerType = errors.New("unknown os manager type")

Functions

func CheckUncleanShutdown added in v0.25.6

func CheckUncleanShutdown(wgIface string) error

Types

type DefaultServer added in v0.10.7

type DefaultServer struct {
	// contains filtered or unexported fields
}

DefaultServer dns server object

func NewDefaultServer added in v0.10.7

func NewDefaultServer(
	ctx context.Context,
	wgInterface WGIface,
	customAddress string,
	statusRecorder *peer.Status,
) (*DefaultServer, error)

NewDefaultServer returns a new dns server

func NewDefaultServerIos added in v0.25.0

func NewDefaultServerIos(
	ctx context.Context,
	wgInterface WGIface,
	iosDnsManager IosDnsManager,
	statusRecorder *peer.Status,
) *DefaultServer

NewDefaultServerIos returns a new dns server. It optimized for ios

func NewDefaultServerPermanentUpstream added in v0.21.9

func NewDefaultServerPermanentUpstream(
	ctx context.Context,
	wgInterface WGIface,
	hostsDnsList []string,
	config nbdns.Config,
	listener listener.NetworkChangeListener,
	statusRecorder *peer.Status,
) *DefaultServer

NewDefaultServerPermanentUpstream returns a new dns server. It optimized for mobile systems

func (*DefaultServer) DnsIP added in v0.21.2

func (s *DefaultServer) DnsIP() string

DnsIP returns the DNS resolver server IP address

When kernel space interface used it return real DNS server listener IP address For bind interface, fake DNS resolver address returned (second last IP address from Nebird network)

func (*DefaultServer) Initialize added in v0.21.4

func (s *DefaultServer) Initialize() (err error)

Initialize instantiate host manager and the dns service

func (*DefaultServer) OnUpdatedHostDNSServer added in v0.21.9

func (s *DefaultServer) OnUpdatedHostDNSServer(hostsDnsList []string)

OnUpdatedHostDNSServer update the DNS servers addresses for root zones It will be applied if the mgm server do not enforce DNS settings for root zone

func (*DefaultServer) ProbeAvailability added in v0.25.5

func (s *DefaultServer) ProbeAvailability()

ProbeAvailability tests each upstream group's servers for availability and deactivates the group if no server responds

func (*DefaultServer) SearchDomains added in v0.24.3

func (s *DefaultServer) SearchDomains() []string

func (*DefaultServer) Stop added in v0.10.7

func (s *DefaultServer) Stop()

Stop stops the server

func (*DefaultServer) UpdateDNSServer added in v0.10.7

func (s *DefaultServer) UpdateDNSServer(serial uint64, update nbdns.Config) error

UpdateDNSServer processes an update received from the management service

type DomainConfig added in v0.25.0

type DomainConfig struct {
	Disabled  bool   `json:"disabled"`
	Domain    string `json:"domain"`
	MatchOnly bool   `json:"matchOnly"`
}

type HostDNSConfig added in v0.25.0

type HostDNSConfig struct {
	Domains    []DomainConfig `json:"domains"`
	RouteAll   bool           `json:"routeAll"`
	ServerIP   string         `json:"serverIP"`
	ServerPort int            `json:"serverPort"`
}

type IosDnsManager added in v0.25.0

type IosDnsManager interface {
	ApplyDns(string)
}

IosDnsManager is a dns manager interface for iOS

type MockServer added in v0.10.7

type MockServer struct {
	InitializeFunc      func() error
	StopFunc            func()
	UpdateDNSServerFunc func(serial uint64, update nbdns.Config) error
}

MockServer is the mock instance of a dns server

func (*MockServer) DnsIP added in v0.21.2

func (m *MockServer) DnsIP() string

func (*MockServer) Initialize added in v0.21.4

func (m *MockServer) Initialize() error

Initialize mock implementation of Initialize from Server interface

func (*MockServer) OnUpdatedHostDNSServer added in v0.21.9

func (m *MockServer) OnUpdatedHostDNSServer(strings []string)

func (*MockServer) ProbeAvailability added in v0.25.5

func (m *MockServer) ProbeAvailability()

ProbeAvailability mocks implementation of ProbeAvailability from the Server interface

func (*MockServer) SearchDomains added in v0.24.3

func (m *MockServer) SearchDomains() []string

func (*MockServer) Stop added in v0.10.7

func (m *MockServer) Stop()

Stop mock implementation of Stop from Server interface

func (*MockServer) UpdateDNSServer added in v0.10.7

func (m *MockServer) UpdateDNSServer(serial uint64, update nbdns.Config) error

UpdateDNSServer mock implementation of UpdateDNSServer from Server interface

type ReadyListener added in v0.21.9

type ReadyListener interface {
	OnReady()
}

ReadyListener is a notification mechanism what indicate the server is ready to handle host dns address changes

type Server

type Server interface {
	Initialize() error
	Stop()
	DnsIP() string
	UpdateDNSServer(serial uint64, update nbdns.Config) error
	OnUpdatedHostDNSServer(strings []string)
	SearchDomains() []string
	ProbeAvailability()
}

Server is a dns server interface

func GetServerDns added in v0.21.9

func GetServerDns() (Server, error)

GetServerDns export the DNS server instance in static way. It used by the Mobile client

type UpstreamResolver added in v0.25.0

type UpstreamResolver interface {
	// contains filtered or unexported methods
}

type WGIface added in v0.21.9

type WGIface interface {
	Name() string
	Address() iface.WGAddress
	IsUserspaceBind() bool
	GetFilter() iface.PacketFilter
	GetDevice() *iface.DeviceWrapper
	GetStats(peerKey string) (iface.WGStats, error)
}

WGIface defines subset methods of interface required for manager

Jump to

Keyboard shortcuts

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