summaryrefslogtreecommitdiff
path: root/internal/web
diff options
context:
space:
mode:
Diffstat (limited to 'internal/web')
-rw-r--r--internal/web/assets.go5
-rw-r--r--internal/web/etag.go2
-rw-r--r--internal/web/rss.go12
-rw-r--r--internal/web/web.go2
4 files changed, 13 insertions, 8 deletions
diff --git a/internal/web/assets.go b/internal/web/assets.go
index 31d09f4be..8f662017a 100644
--- a/internal/web/assets.go
+++ b/internal/web/assets.go
@@ -102,6 +102,9 @@ func (m *Module) getAssetETag(filePath string, fs http.FileSystem) (string, erro
// package along with the other middlewares
func (m *Module) assetsCacheControlMiddleware(fs http.FileSystem) gin.HandlerFunc {
return func(c *gin.Context) {
+ // Acquire context from gin request.
+ ctx := c.Request.Context()
+
// set this Cache-Control header to instruct clients to validate the response with us
// before each reuse (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control)
c.Header(cacheControlHeader, cacheControlNoCache)
@@ -118,7 +121,7 @@ func (m *Module) assetsCacheControlMiddleware(fs http.FileSystem) gin.HandlerFun
// either fetch etag from ttlcache or generate it
eTag, err := m.getAssetETag(assetFilePath, fs)
if err != nil {
- log.Errorf("error getting ETag for %s: %s", assetFilePath, err)
+ log.Errorf(ctx, "error getting ETag for %s: %s", assetFilePath, err)
return
}
diff --git a/internal/web/etag.go b/internal/web/etag.go
index 72c3bb762..096aa9c83 100644
--- a/internal/web/etag.go
+++ b/internal/web/etag.go
@@ -34,7 +34,7 @@ func newETagCache() cache.Cache[string, eTagCacheEntry] {
eTagCache := cache.New[string, eTagCacheEntry](0, 1000, 0)
eTagCache.SetTTL(time.Hour, false)
if !eTagCache.Start(time.Minute) {
- log.Panic("could not start eTagCache")
+ log.Panic(nil, "could not start eTagCache")
}
return eTagCache
}
diff --git a/internal/web/rss.go b/internal/web/rss.go
index 757c3ffb5..dccb49542 100644
--- a/internal/web/rss.go
+++ b/internal/web/rss.go
@@ -61,14 +61,16 @@ func (m *Module) GetRSSETag(urlPath string, lastModified time.Time, getRSSFeed f
return eTag, nil
}
-func extractIfModifiedSince(header string) time.Time {
- if header == "" {
+func extractIfModifiedSince(r *http.Request) time.Time {
+ hdr := r.Header.Get(ifModifiedSinceHeader)
+
+ if hdr == "" {
return time.Time{}
}
- t, err := http.ParseTime(header)
+ t, err := http.ParseTime(hdr)
if err != nil {
- log.Errorf("couldn't parse if-modified-since %s: %s", header, err)
+ log.Errorf(r.Context(), "couldn't parse if-modified-since %s: %s", hdr, err)
return time.Time{}
}
@@ -95,7 +97,7 @@ func (m *Module) rssFeedGETHandler(c *gin.Context) {
}
ifNoneMatch := c.Request.Header.Get(ifNoneMatchHeader)
- ifModifiedSince := extractIfModifiedSince(c.Request.Header.Get(ifModifiedSinceHeader))
+ ifModifiedSince := extractIfModifiedSince(c.Request)
getRssFeed, accountLastPostedPublic, errWithCode := m.processor.AccountGetRSSFeedForUsername(ctx, username)
if errWithCode != nil {
diff --git a/internal/web/web.go b/internal/web/web.go
index 0fc1644c8..08bac4583 100644
--- a/internal/web/web.go
+++ b/internal/web/web.go
@@ -79,7 +79,7 @@ func (m *Module) Route(r router.Router, mi ...gin.HandlerFunc) {
// so that they can use the same cache control middleware.
webAssetsAbsFilePath, err := filepath.Abs(config.GetWebAssetBaseDir())
if err != nil {
- log.Panicf("error getting absolute path of assets dir: %s", err)
+ log.Panicf(nil, "error getting absolute path of assets dir: %s", err)
}
fs := fileSystem{http.Dir(webAssetsAbsFilePath)}
assetsGroup := r.AttachGroup(assetsPathPrefix)