From 47b15734e8b93905eef6f393cff77a69972d7a2f Mon Sep 17 00:00:00 2001 From: Martin Hebnes Pedersen Date: Thu, 19 Dec 2024 23:52:06 +0100 Subject: [PATCH] Properly close response body on internet check --- internal/forms/builder.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/forms/builder.go b/internal/forms/builder.go index 9ac8745..1804824 100644 --- a/internal/forms/builder.go +++ b/internal/forms/builder.go @@ -5,6 +5,7 @@ import ( "context" "encoding/xml" "fmt" + "io" "log" "net/http" "net/textproto" @@ -369,7 +370,13 @@ func isInternetAvailable() bool { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() req, _ := http.NewRequestWithContext(ctx, "HEAD", "https://www.google.com", nil) - _, err := http.DefaultClient.Do(req) + resp, err := http.DefaultClient.Do(req) debug.Printf("Internet available: %v (%v)", err == nil, err) - return err == nil + if err != nil { + return false + } + // Be nice, read the response body and close it. + io.Copy(io.Discard, resp.Body) + resp.Body.Close() + return true }