dns

package
v2.10.4+incompatible Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2016 License: MIT Imports: 17 Imported by: 0

Documentation

Overview

Package dns is a generated protocol buffer package.

It is generated from these files:

v2ray.com/core/app/dns/config.proto

It has these top-level messages:

Config

Index

Constants

View Source
const (
	DefaultTTL       = uint32(3600)
	CleanupInterval  = time.Second * 120
	CleanupThreshold = 512
)
View Source
const (
	APP_ID = app.ID(2)
)
View Source
const (
	QueryTimeout = time.Second * 8
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ARecord

type ARecord struct {
	IPs    []net.IP
	Expire time.Time
}

type CacheServer

type CacheServer struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewCacheServer

func NewCacheServer(space app.Space, config *Config) *CacheServer

func (*CacheServer) Get

func (v *CacheServer) Get(domain string) []net.IP

func (*CacheServer) GetCached

func (v *CacheServer) GetCached(domain string) []net.IP

Private: Visible for testing.

func (*CacheServer) Release

func (v *CacheServer) Release()

type CacheServerFactory

type CacheServerFactory struct{}

func (CacheServerFactory) AppId

func (v CacheServerFactory) AppId() app.ID

func (CacheServerFactory) Create

func (v CacheServerFactory) Create(space app.Space, config interface{}) (app.Application, error)

type Config

type Config struct {
	// Nameservers used by this DNS. Only traditional UDP servers are support at the moment.
	// A special value 'localhost' as a domain address can be set to use DNS on local system.
	NameServers []*v2ray_core_common_net2.Endpoint `protobuf:"bytes,1,rep,name=NameServers" json:"NameServers,omitempty"`
	// Static hosts. Domain to IP.
	Hosts map[string]*v2ray_core_common_net.IPOrDomain `` /* 130-byte string literal not displayed */
}

func (*Config) Descriptor

func (*Config) Descriptor() ([]byte, []int)

func (*Config) GetHosts

func (m *Config) GetHosts() map[string]*v2ray_core_common_net.IPOrDomain

func (*Config) GetInternalHosts

func (v *Config) GetInternalHosts() map[string]net.IP

func (*Config) GetNameServers

func (m *Config) GetNameServers() []*v2ray_core_common_net2.Endpoint

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *Config) String() string

type DomainRecord

type DomainRecord struct {
	A *ARecord
}

type LocalNameServer

type LocalNameServer struct {
}

func (*LocalNameServer) QueryA

func (v *LocalNameServer) QueryA(domain string) <-chan *ARecord

type NameServer

type NameServer interface {
	QueryA(domain string) <-chan *ARecord
}

type PendingRequest

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

type Server

type Server interface {
	Get(domain string) []net.IP
}

A DnsCache is an internal cache of DNS resolutions.

type UDPNameServer

type UDPNameServer struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewUDPNameServer

func NewUDPNameServer(address v2net.Destination, dispatcher dispatcher.PacketDispatcher) *UDPNameServer

func (*UDPNameServer) AssignUnusedID

func (v *UDPNameServer) AssignUnusedID(response chan<- *ARecord) uint16

Private: Visible for testing.

func (*UDPNameServer) BuildQueryA

func (v *UDPNameServer) BuildQueryA(domain string, id uint16) *buf.Buffer

func (*UDPNameServer) Cleanup

func (v *UDPNameServer) Cleanup()

Private: Visible for testing.

func (*UDPNameServer) DispatchQuery

func (v *UDPNameServer) DispatchQuery(payload *buf.Buffer)

func (*UDPNameServer) HandleResponse

func (v *UDPNameServer) HandleResponse(dest v2net.Destination, payload *buf.Buffer)

Private: Visible for testing.

func (*UDPNameServer) QueryA

func (v *UDPNameServer) QueryA(domain string) <-chan *ARecord

Jump to

Keyboard shortcuts

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