Keep consistence Host struct api
This commit is contained in:
parent
f32122d875
commit
a5a8615b32
22
hosts.go
22
hosts.go
|
@ -12,22 +12,22 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Hosts struct {
|
type Hosts struct {
|
||||||
FileHosts map[string]string
|
FileHosts *FileHosts
|
||||||
RedisHosts *RedisHosts
|
RedisHosts *RedisHosts
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewHosts(hs HostsSettings, rs RedisSettings) Hosts {
|
func NewHosts(hs HostsSettings, rs RedisSettings) Hosts {
|
||||||
fileHosts := &FileHosts{hs.HostsFile}
|
fileHosts := &FileHosts{hs.HostsFile}
|
||||||
|
|
||||||
var rc *redis.Client
|
var redisHosts *RedisHosts
|
||||||
if hs.RedisEnable {
|
if hs.RedisEnable {
|
||||||
rc = &redis.Client{Addr: rs.Addr(), Db: rs.DB, Password: rs.Password}
|
rc := &redis.Client{Addr: rs.Addr(), Db: rs.DB, Password: rs.Password}
|
||||||
|
redisHosts = &RedisHosts{rc, hs.RedisKey}
|
||||||
} else {
|
} else {
|
||||||
rc = nil
|
redisHosts = new(RedisHosts)
|
||||||
}
|
}
|
||||||
redisHosts := &RedisHosts{rc, hs.RedisKey}
|
|
||||||
|
|
||||||
hosts := Hosts{fileHosts.GetAll(), redisHosts}
|
hosts := Hosts{fileHosts, redisHosts}
|
||||||
return hosts
|
return hosts
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ func NewHosts(hs HostsSettings, rs RedisSettings) Hosts {
|
||||||
func (h *Hosts) Get(domain string, family int) (ip net.IP, ok bool) {
|
func (h *Hosts) Get(domain string, family int) (ip net.IP, ok bool) {
|
||||||
var sip string
|
var sip string
|
||||||
|
|
||||||
if sip, ok = h.FileHosts[domain]; !ok {
|
if sip, ok = h.FileHosts.Get(domain); !ok {
|
||||||
if sip, ok = h.RedisHosts.Get(domain); !ok {
|
if sip, ok = h.RedisHosts.Get(domain); !ok {
|
||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ func (h *Hosts) GetAll() map[string]string {
|
||||||
for domain, ip := range h.RedisHosts.GetAll() {
|
for domain, ip := range h.RedisHosts.GetAll() {
|
||||||
m[domain] = ip
|
m[domain] = ip
|
||||||
}
|
}
|
||||||
for domain, ip := range h.FileHosts {
|
for domain, ip := range h.FileHosts.GetAll() {
|
||||||
m[domain] = ip
|
m[domain] = ip
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
|
@ -103,6 +103,12 @@ type FileHosts struct {
|
||||||
file string
|
file string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (f *FileHosts) Get(domain string) (ip string, ok bool) {
|
||||||
|
hosts := f.GetAll()
|
||||||
|
ip, ok = hosts[domain]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (f *FileHosts) GetAll() map[string]string {
|
func (f *FileHosts) GetAll() map[string]string {
|
||||||
var hosts = make(map[string]string)
|
var hosts = make(map[string]string)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue