Files

20 lines
414 B
Go

package egressutil
func ProbeFirstSuccess(endpoints []string, probe func(rawURL string) (string, error)) (string, []string) {
if len(endpoints) == 0 {
return "", nil
}
errs := make([]string, 0, len(endpoints))
for _, rawURL := range endpoints {
if probe == nil {
continue
}
val, err := probe(rawURL)
if err == nil {
return val, nil
}
errs = append(errs, err.Error())
}
return "", errs
}