Fix: fake-ip-filter on fakeip mode should lookup ip-host mapping (#743)

This commit is contained in:
gVisor bot 2020-06-14 00:41:53 +08:00
parent a924dd325c
commit 30b4a7f6dc

View file

@ -121,7 +121,7 @@ func (r *Resolver) exchangeWithoutCache(m *D.Msg) (msg *D.Msg, err error) {
} }
putMsgToCache(r.lruCache, q.String(), msg) putMsgToCache(r.lruCache, q.String(), msg)
if r.mapping { if r.mapping || r.fakeip {
ips := r.msgToIP(msg) ips := r.msgToIP(msg)
for _, ip := range ips { for _, ip := range ips {
putMsgToCache(r.lruCache, ip.String(), msg) putMsgToCache(r.lruCache, ip.String(), msg)
@ -151,7 +151,10 @@ func (r *Resolver) exchangeWithoutCache(m *D.Msg) (msg *D.Msg, err error) {
// IPToHost return fake-ip or redir-host mapping host // IPToHost return fake-ip or redir-host mapping host
func (r *Resolver) IPToHost(ip net.IP) (string, bool) { func (r *Resolver) IPToHost(ip net.IP) (string, bool) {
if r.fakeip { if r.fakeip {
return r.pool.LookBack(ip) record, existed := r.pool.LookBack(ip)
if existed {
return record, true
}
} }
cache, _ := r.lruCache.Get(ip.String()) cache, _ := r.lruCache.Get(ip.String())