| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package dns
- import (
- "net"
- "github.com/v2ray/v2ray-core/app"
- )
- const (
- APP_ID = app.ID(2)
- )
- // A DnsCache is an internal cache of DNS resolutions.
- type Server interface {
- Get(domain string) []net.IP
- }
- type dnsServerWithContext interface {
- Get(context app.Context, domain string) []net.IP
- }
- type contextedDnsServer struct {
- context app.Context
- dnsCache dnsServerWithContext
- }
- func (this *contextedDnsServer) Get(domain string) []net.IP {
- return this.dnsCache.Get(this.context, domain)
- }
- func init() {
- app.Register(APP_ID, func(context app.Context, obj interface{}) interface{} {
- dcContext := obj.(dnsServerWithContext)
- return &contextedDnsServer{
- context: context,
- dnsCache: dcContext,
- }
- })
- }
|