From 4944996253bbc0b9ea63d724ab6017f4762f6b1d Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Mon, 11 May 2020 00:52:17 -0400 Subject: [PATCH] add timeout to last remaining http get --- activity.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/activity.go b/activity.go index 6778510..3953842 100644 --- a/activity.go +++ b/activity.go @@ -19,7 +19,6 @@ import ( "bytes" "context" "database/sql" - "errors" "fmt" "html" "io" @@ -70,7 +69,7 @@ func PostMsg(keyname string, key httpsig.PrivateKey, url string, msg []byte) err req.Header.Set("User-Agent", "honksnonk/5.0; "+serverName) req.Header.Set("Content-Type", theonetruename) httpsig.SignRequest(keyname, key, req, msg) - ctx, cancel := context.WithTimeout(context.Background(), 1 * time.Minute) + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Minute) defer cancel() req = req.WithContext(ctx) resp, err := client.Do(req) @@ -146,14 +145,23 @@ func GetJunkTimeout(url string, timeout time.Duration) (junk.Junk, error) { } func fetchsome(url string) ([]byte, error) { - resp, err := http.Get(url) + client := http.DefaultClient + req, err := http.NewRequest("GET", url, nil) + if err != nil { + log.Printf("error fetching %s: %s", url, err) + return nil, err + } + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Minute) + defer cancel() + req = req.WithContext(ctx) + resp, err := client.Do(req) if err != nil { log.Printf("error fetching %s: %s", url, err) return nil, err } defer resp.Body.Close() if resp.StatusCode != 200 { - return nil, errors.New("not 200") + return nil, fmt.Errorf("not 200: %d %s", resp.StatusCode, url) } var buf bytes.Buffer limiter := io.LimitReader(resp.Body, 10*1024*1024)