errors.go 381 B

123456789101112131415161718192021
  1. package types
  2. import (
  3. "net"
  4. "net/url"
  5. )
  6. // IsTimeout takes an error returned from (generally) the http package and determines if it is a timeout error.
  7. func IsTimeout(err error) bool {
  8. switch e := err.(type) {
  9. case net.Error:
  10. return e.Timeout()
  11. case *url.Error:
  12. if t, ok := e.Err.(net.Error); ok {
  13. return t.Timeout()
  14. }
  15. return false
  16. default:
  17. return false
  18. }
  19. }