code: func (h *Hostsfile) readHosts() {
  	file, err := os.Open(h.path)
  	if err != nil {
  		// We already log a warning if the file doesn't exist or can't be opened on setup. No need to return the error here.
  		return
  	}
  	defer file.Close()
  
  	stat, err := file.Stat()
  	if err == nil && h.mtime.Equal(stat.ModTime()) && h.size == stat.Size() {
  		return
  	}
  
  	h.Lock()
  	defer h.Unlock()
  	h.parseReader(file)
  
  	// Update the data cache.
  	h.mtime = stat.ModTime()
  	h.size = stat.Size()
  }
docs: // readHosts determines if the cached data needs to be updated based on the size and modification time of the hostsfile.