func (s *Svc) ClientStatus() map[string]bool { s.mut.RLock() status := make(map[string]bool, len(s.clients)) for uri, client := range s.clients { status[uri] = client.StatusOK() } s.mut.RUnlock() return status }
func (s *Svc) ClientStatus() map[string]bool { if s == nil { // A nil client does not have a status, really. Yet we may be called // this way, for raisins... return nil } s.mut.RLock() status := make(map[string]bool, len(s.clients)) for uri, client := range s.clients { status[uri] = client.StatusOK() } s.mut.RUnlock() return status }
// 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 }