See https://github.com/golang/go/issues/23459. Client, Server, and Transport may all have timeout fields in which zero = infinity. Instead it should be a reasonable default.