code: func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
  	// Since Linode only updates their zone files every X minutes, we need
  	// to figure out how many minutes we have to wait until we hit the next
  	// interval of X.  We then wait another couple of minutes, just to be
  	// safe.  Hopefully at some point during all of this, the record will
  	// have propagated throughout Linode's network.
  	minsRemaining := dnsUpdateFreqMins - (time.Now().Minute() % dnsUpdateFreqMins)
  
  	timeout = (time.Duration(minsRemaining) * time.Minute) +
  		(minTTL * time.Second) +
  		(dnsUpdateFudgeSecs * time.Second)
  	interval = d.config.PollingInterval
  	return
  }
docs: // Timeout returns the timeout and interval to use when checking for DNS
  // propagation.  Adjusting here to cope with spikes in propagation times.