// RelayStatus returns the latency and OK status for a given relay. func (s *Svc) RelayStatus(uri string) (time.Duration, bool) { if s == nil { // A nil client does not have a status, really. Yet we may be called // this way, for raisins... return time.Hour, false } s.mut.RLock() client, ok := s.clients[uri] s.mut.RUnlock() if !ok || !client.StatusOK() { return time.Hour, false } return client.Latency(), true }
// RelayStatus returns the latency and OK status for a given relay. func (s *Svc) RelayStatus(uri string) (time.Duration, bool) { if s == nil { // A nil client does not have a status, really. Yet we may be called // this way, for raisins... return time.Hour, false } s.mut.RLock() defer s.mut.RUnlock() for _, client := range s.clients { if client.URI().String() == uri { return client.Latency(), client.StatusOK() } } return time.Hour, false }