| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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 DnsCache interface {
- Get(domain string) net.IP
- Add(domain string, ip net.IP)
- }
- type dnsCacheWithContext interface {
- Get(context app.Context, domain string) net.IP
- Add(contaxt app.Context, domain string, ip net.IP)
- }
- type contextedDnsCache struct {
- context app.Context
- dnsCache dnsCacheWithContext
- }
- func (this *contextedDnsCache) Get(domain string) net.IP {
- return this.dnsCache.Get(this.context, domain)
- }
- func (this *contextedDnsCache) Add(domain string, ip net.IP) {
- this.dnsCache.Add(this.context, domain, ip)
- }
- func init() {
- app.RegisterApp(APP_ID, func(context app.Context, obj interface{}) interface{} {
- dcContext := obj.(dnsCacheWithContext)
- return &contextedDnsCache{
- context: context,
- dnsCache: dcContext,
- }
- })
- }
|