2015-09-07 19:29:33 -04:00
|
|
|
package utils
|
2015-08-06 12:35:43 -04:00
|
|
|
|
|
|
|
import (
|
|
|
|
"net"
|
|
|
|
"net/url"
|
|
|
|
)
|
|
|
|
|
|
|
|
// IsTimeout takes an error returned from (generally) the http package and determines if it is a timeout error.
|
|
|
|
func IsTimeout(err error) bool {
|
|
|
|
switch e := err.(type) {
|
|
|
|
case net.Error:
|
|
|
|
return e.Timeout()
|
|
|
|
case *url.Error:
|
|
|
|
if t, ok := e.Err.(net.Error); ok {
|
|
|
|
return t.Timeout()
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
default:
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
}
|