From 2c178c85e60d5824c2fe2a38813bad64592f4b63 Mon Sep 17 00:00:00 2001 From: Nathan Osman Date: Thu, 5 May 2016 22:18:20 -0700 Subject: [PATCH] Added force parameter. --- cache/cache.go | 7 ++++--- server.go | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cache/cache.go b/cache/cache.go index fd5b959..863ff31 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -53,8 +53,9 @@ func (c *Cache) getFilenames(rawurl string) (hash, jsonFilename, dataFilename st // GetReader obtains a Reader for the specified rawurl. If a downloader // currently exists for the URL, a live reader is created and connected to it. // If the URL exists in the cache, it is read using the standard file API. If -// not, a downloader and live reader are created. -func (c *Cache) GetReader(rawurl string) (Reader, error) { +// not, a downloader and live reader are created. The force parameter can be +// used to force a new download to be created. +func (c *Cache) GetReader(rawurl string, force bool) (Reader, error) { hash, jsonFilename, dataFilename := c.getFilenames(rawurl) c.mutex.Lock() defer c.mutex.Unlock() @@ -65,7 +66,7 @@ func (c *Cache) GetReader(rawurl string) (Reader, error) { if !os.IsNotExist(err) { return nil, err } - } else { + } else if !force { r, err := newDiskReader(jsonFilename, dataFilename) if err != nil { return nil, err diff --git a/server.go b/server.go index b6d935b..1947cb3 100644 --- a/server.go +++ b/server.go @@ -56,7 +56,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) { http.Error(w, "method not allowed", http.StatusMethodNotAllowed) return } - r, err := s.cache.GetReader(rewrite(req.RequestURI)) + r, err := s.cache.GetReader(rewrite(req.RequestURI), false) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) log.Println("[ERR]", err)