func()

in oss/retry/retryable_error.go [76:103]


func (c *ConnectionErrorRetryable) IsErrorRetryable(err error) bool {
	if err != nil {
		switch t := err.(type) {
		case *url.Error:
			if t.Err != nil {
				return c.IsErrorRetryable(t.Err)
			}
		case net.Error:
			if t.Temporary() || t.Timeout() {
				return true
			}
		}

		for _, retriableErr := range retriableErrors {
			if err == retriableErr {
				return true
			}
		}

		errString := err.Error()
		for _, phrase := range retriableErrorStrings {
			if strings.Contains(errString, phrase) {
				return true
			}
		}
	}
	return false
}