From feb34030c233da368b16b861a8f949024c20ef7b Mon Sep 17 00:00:00 2001 From: Evan Hazlett Date: Fri, 30 Jan 2015 12:41:35 -0500 Subject: [PATCH] add timeout for b2d download Signed-off-by: Evan Hazlett --- utils/b2d.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/utils/b2d.go b/utils/b2d.go index e28d124cd5..b14a932aaa 100644 --- a/utils/b2d.go +++ b/utils/b2d.go @@ -20,9 +20,7 @@ func defaultTimeout(network, addr string) (net.Conn, error) { return net.DialTimeout(network, addr, timeout) } -// Get the latest boot2docker release tag name (e.g. "v0.6.0"). -// FIXME: find or create some other way to get the "latest release" of boot2docker since the GitHub API has a pretty low rate limit on API requests -func GetLatestBoot2DockerReleaseURL() (string, error) { +func getClient() *http.Client { transport := http.Transport{ Dial: defaultTimeout, } @@ -31,6 +29,14 @@ func GetLatestBoot2DockerReleaseURL() (string, error) { Transport: &transport, } + return &client +} + +// Get the latest boot2docker release tag name (e.g. "v0.6.0"). +// FIXME: find or create some other way to get the "latest release" of boot2docker since the GitHub API has a pretty low rate limit on API requests +func GetLatestBoot2DockerReleaseURL() (string, error) { + client := getClient() + rsp, err := client.Get("https://api.github.com/repos/boot2docker/boot2docker/releases") if err != nil { return "", err @@ -54,7 +60,9 @@ func GetLatestBoot2DockerReleaseURL() (string, error) { // Download boot2docker ISO image for the given tag and save it at dest. func DownloadISO(dir, file, url string) error { - rsp, err := http.Get(url) + client := getClient() + + rsp, err := client.Get(url) if err != nil { return err }