diff --git a/fetch/fetch.go b/fetch/fetch.go index 428457f..d6d9fe6 100644 --- a/fetch/fetch.go +++ b/fetch/fetch.go @@ -46,7 +46,7 @@ func Page(data *core.FullData, remote *url.URL, title string) error { type refreshJob struct { typ string // "feed" or "page" - url url.URL + url *url.URL } // RefreshAll will check all feeds and pages in a core.FullData for updates @@ -74,16 +74,16 @@ func RefreshAll(data *core.FullData, numWorkers int) error { } // get all keys in maps - feedKeys := make([]url.URL, 0, len(data.Feeds)) + feedKeys := make([]*url.URL, 0, len(data.Feeds)) for k := range data.Feeds { // we know that the keys are already validated uris, so no err u, _ := url.ParseRequestURI(k) - feedKeys = append(feedKeys, *u) + feedKeys = append(feedKeys, u) } - pageKeys := make([]url.URL, 0, len(data.Pages)) + pageKeys := make([]*url.URL, 0, len(data.Pages)) for k := range data.Pages { u, _ := url.ParseRequestURI(k) - pageKeys = append(pageKeys, *u) + pageKeys = append(pageKeys, u) } data.RUnlock() @@ -109,9 +109,9 @@ func refreshWorker(wg *sync.WaitGroup, jobs <-chan refreshJob, returns chan<- er defer wg.Done() for j := range jobs { if j.typ == "feed" { - returns <- Feed(data, &j.url, "") + returns <- Feed(data, j.url, "") } else if j.typ == "page" { - returns <- Page(data, &j.url, "") + returns <- Page(data, j.url, "") } } } diff --git a/fetch/gemini.go b/fetch/gemini.go index 5f26b95..0fbb3ec 100644 --- a/fetch/gemini.go +++ b/fetch/gemini.go @@ -28,8 +28,7 @@ import ( // fetchGemini will make a request for a gemini resource func fetchGemini(remote string) (*gemini.Response, error) { - ctx, cancel := context.WithTimeout(context.Background(), time.Duration(core.Timeout)*time.Second) - defer cancel() + ctx, _ := context.WithTimeout(context.Background(), time.Duration(core.Timeout)*time.Second) client := &gemini.Client{} resp, err := client.Get(ctx, remote) if err != nil {