diff options
Diffstat (limited to 'internal/cache')
| -rw-r--r-- | internal/cache/cache.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/internal/cache/cache.go b/internal/cache/cache.go index a2d86a0..d6a31f3 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -2,6 +2,7 @@ package cache import ( "database/sql" + "log/slog" "sync" "sync/atomic" "time" @@ -199,16 +200,22 @@ func (c *Cache) evictLoop() { } } func (c *Cache) writeToDB(key Key, e *entry) { + if c.db == nil { + return + } data, err := e.msg.Pack() if err != nil { return } - c.db.Exec( + _, err = c.db.Exec( `INSERT OR REPLACE INTO cache (name, qtype, class, data, stored_at, ttl_ns) VALUES (?, ?, ?, ?, ?, ?)`, key.Name, key.Qtype, key.Class, data, e.storedAt.UnixNano(), int64(e.ttl), ) + if err != nil { + slog.Warn("cache write to db failed", "err", err) + } } func (c *Cache) loadFromDB() { |
