dns

package
v0.0.0-...-93fed14 Latest Latest
Warning

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

Go to latest
Published: Jan 5, 2024 License: BSD-3-Clause Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DefaultServer

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

DefaultServer dns server object

func NewDefaultServer

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

NewDefaultServer returns a new dns server

func NewDefaultServerIos

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

NewDefaultServerIos returns a new dns server. It optimized for ios

func NewDefaultServerPermanentUpstream

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

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

func (*DefaultServer) DnsIP

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

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

Initialize instantiate host manager and the dns service

func (*DefaultServer) OnUpdatedHostDNSServer

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) SearchDomains

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

func (*DefaultServer) Stop

func (s *DefaultServer) Stop()

Stop stops the server

func (*DefaultServer) UpdateDNSServer

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

UpdateDNSServer processes an update received from the management service

type DomainConfig

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

type HostDNSConfig

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

type IosDnsManager

type IosDnsManager interface {
	ApplyDns(string)
}

IosDnsManager is a dns manager interface for iOS

type MockServer

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

func (m *MockServer) DnsIP() string

func (*MockServer) Initialize

func (m *MockServer) Initialize() error

Initialize mock implementation of Initialize from Server interface

func (*MockServer) OnUpdatedHostDNSServer

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

func (*MockServer) SearchDomains

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

func (*MockServer) Stop

func (m *MockServer) Stop()

Stop mock implementation of Stop from Server interface

func (*MockServer) UpdateDNSServer

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

UpdateDNSServer mock implementation of UpdateDNSServer from Server interface

type ReadyListener

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
}

Server is a dns server interface

func GetServerDns

func GetServerDns() (Server, error)

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

type UpstreamResolver

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

type WGIface

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

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