From a94dd6fb4470370d80232147f9ba7ddf140107cf Mon Sep 17 00:00:00 2001 From: blank X Date: Tue, 10 Aug 2021 14:46:01 +0700 Subject: [PATCH] Reuse client and ctx --- main.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 02ca6d2..310e0a2 100644 --- a/main.go +++ b/main.go @@ -59,11 +59,7 @@ func trustCertificate(hostname string, cert *x509.Certificate) error { return nil } -func do(req *gemini.Request, via []*gemini.Request) (*gemini.Response, *gemini.Request, error) { - client := gemini.Client{ - TrustCertificate: trustCertificate, - } - ctx := context.Background() +func do(client gemini.Client, ctx context.Context, req *gemini.Request, via []*gemini.Request) (*gemini.Response, *gemini.Request, error) { resp, err := client.Do(ctx, req) if err != nil { return resp, req, err @@ -85,7 +81,7 @@ func do(req *gemini.Request, via []*gemini.Request) (*gemini.Response, *gemini.R target = req.URL.ResolveReference(target) redirect := *req redirect.URL = target - return do(&redirect, via) + return do(client, ctx, &redirect, via) } if resp.Status.Class() != gemini.StatusSuccess { return resp, req, errors.New(fmt.Sprintf("%d %s", resp.Status, resp.Meta)) @@ -109,7 +105,11 @@ func main() { log.Fatal(err) } - resp, req, err := do(req, nil) + client := gemini.Client{ + TrustCertificate: trustCertificate, + } + ctx := context.Background() + resp, req, err := do(client, ctx, req, nil) if err != nil { log.Fatal(err) }