github.com/metacubex/mihomo@v1.18.5/component/resolver/enhancer.go (about)

     1  package resolver
     2  
     3  import "net/netip"
     4  
     5  var DefaultHostMapper Enhancer
     6  
     7  type Enhancer interface {
     8  	FakeIPEnabled() bool
     9  	MappingEnabled() bool
    10  	IsFakeIP(netip.Addr) bool
    11  	IsFakeBroadcastIP(netip.Addr) bool
    12  	IsExistFakeIP(netip.Addr) bool
    13  	FindHostByIP(netip.Addr) (string, bool)
    14  	FlushFakeIP() error
    15  	InsertHostByIP(netip.Addr, string)
    16  	StoreFakePoolState()
    17  }
    18  
    19  func FakeIPEnabled() bool {
    20  	if mapper := DefaultHostMapper; mapper != nil {
    21  		return mapper.FakeIPEnabled()
    22  	}
    23  
    24  	return false
    25  }
    26  
    27  func MappingEnabled() bool {
    28  	if mapper := DefaultHostMapper; mapper != nil {
    29  		return mapper.MappingEnabled()
    30  	}
    31  
    32  	return false
    33  }
    34  
    35  func IsFakeIP(ip netip.Addr) bool {
    36  	if mapper := DefaultHostMapper; mapper != nil {
    37  		return mapper.IsFakeIP(ip)
    38  	}
    39  
    40  	return false
    41  }
    42  
    43  func IsFakeBroadcastIP(ip netip.Addr) bool {
    44  	if mapper := DefaultHostMapper; mapper != nil {
    45  		return mapper.IsFakeBroadcastIP(ip)
    46  	}
    47  
    48  	return false
    49  }
    50  
    51  func IsExistFakeIP(ip netip.Addr) bool {
    52  	if mapper := DefaultHostMapper; mapper != nil {
    53  		return mapper.IsExistFakeIP(ip)
    54  	}
    55  
    56  	return false
    57  }
    58  
    59  func InsertHostByIP(ip netip.Addr, host string) {
    60  	if mapper := DefaultHostMapper; mapper != nil {
    61  		mapper.InsertHostByIP(ip, host)
    62  	}
    63  }
    64  
    65  func FindHostByIP(ip netip.Addr) (string, bool) {
    66  	if mapper := DefaultHostMapper; mapper != nil {
    67  		return mapper.FindHostByIP(ip)
    68  	}
    69  
    70  	return "", false
    71  }
    72  
    73  func FlushFakeIP() error {
    74  	if mapper := DefaultHostMapper; mapper != nil {
    75  		return mapper.FlushFakeIP()
    76  	}
    77  	return nil
    78  }
    79  
    80  func StoreFakePoolState() {
    81  	if mapper := DefaultHostMapper; mapper != nil {
    82  		mapper.StoreFakePoolState()
    83  	}
    84  }