mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-02-20 23:47:21 -05:00
decouple dns server
This commit is contained in:
parent
5e297692da
commit
c4144af223
2
all.go
2
all.go
@ -3,7 +3,7 @@ package core
|
||||
import (
|
||||
// The following are necessary as they register handlers in their init functions.
|
||||
_ "v2ray.com/core/app/dispatcher/impl"
|
||||
_ "v2ray.com/core/app/dns"
|
||||
_ "v2ray.com/core/app/dns/server"
|
||||
_ "v2ray.com/core/app/proxy"
|
||||
_ "v2ray.com/core/app/router"
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package dns
|
||||
package server
|
||||
|
||||
import (
|
||||
"net"
|
@ -1,4 +1,4 @@
|
||||
package dns
|
||||
package server
|
||||
|
||||
import (
|
||||
"net"
|
||||
@ -7,12 +7,13 @@ import (
|
||||
|
||||
"v2ray.com/core/app"
|
||||
"v2ray.com/core/app/dispatcher"
|
||||
"v2ray.com/core/app/dns"
|
||||
"v2ray.com/core/common/errors"
|
||||
"v2ray.com/core/common/log"
|
||||
v2net "v2ray.com/core/common/net"
|
||||
"v2ray.com/core/common/serial"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
dnsmsg "github.com/miekg/dns"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -31,7 +32,7 @@ type CacheServer struct {
|
||||
servers []NameServer
|
||||
}
|
||||
|
||||
func NewCacheServer(space app.Space, config *Config) *CacheServer {
|
||||
func NewCacheServer(space app.Space, config *dns.Config) *CacheServer {
|
||||
server := &CacheServer{
|
||||
records: make(map[string]*DomainRecord),
|
||||
servers: make([]NameServer, len(config.NameServers)),
|
||||
@ -85,7 +86,7 @@ func (v *CacheServer) Get(domain string) []net.IP {
|
||||
return []net.IP{ip}
|
||||
}
|
||||
|
||||
domain = dns.Fqdn(domain)
|
||||
domain = dnsmsg.Fqdn(domain)
|
||||
ips := v.GetCached(domain)
|
||||
if ips != nil {
|
||||
return ips
|
||||
@ -116,14 +117,14 @@ func (v *CacheServer) Get(domain string) []net.IP {
|
||||
type CacheServerFactory struct{}
|
||||
|
||||
func (v CacheServerFactory) Create(space app.Space, config interface{}) (app.Application, error) {
|
||||
server := NewCacheServer(space, config.(*Config))
|
||||
server := NewCacheServer(space, config.(*dns.Config))
|
||||
return server, nil
|
||||
}
|
||||
|
||||
func (v CacheServerFactory) AppId() app.ID {
|
||||
return APP_ID
|
||||
return dns.APP_ID
|
||||
}
|
||||
|
||||
func init() {
|
||||
app.RegisterApplicationFactory(serial.GetMessageType(new(Config)), CacheServerFactory{})
|
||||
app.RegisterApplicationFactory(serial.GetMessageType(new(dns.Config)), CacheServerFactory{})
|
||||
}
|
16
v2ray.go
16
v2ray.go
@ -59,14 +59,14 @@ func NewPoint(pConfig *Config) (*Point, error) {
|
||||
}
|
||||
|
||||
if !space.HasApp(dns.APP_ID) {
|
||||
dnsServer := dns.NewCacheServer(space, &dns.Config{
|
||||
NameServers: []*v2net.Endpoint{
|
||||
{
|
||||
Address: v2net.NewIPOrDomain(v2net.LocalHostDomain),
|
||||
},
|
||||
},
|
||||
})
|
||||
space.BindApp(dns.APP_ID, dnsServer)
|
||||
dnsConfig := &dns.Config{
|
||||
NameServers: []*v2net.Endpoint{{
|
||||
Address: v2net.NewIPOrDomain(v2net.LocalHostDomain),
|
||||
}},
|
||||
}
|
||||
if err := space.BindFromConfig(serial.GetMessageType(dnsConfig), dnsConfig); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
dispatcherConfig := new(dispatcher.Config)
|
||||
|
Loading…
x
Reference in New Issue
Block a user