-rw-r--r-- | cache.c | 16 | ||||
-rw-r--r-- | cgit.c | 4 |
2 files changed, 15 insertions, 5 deletions
@@ -249,15 +249,20 @@ static int process_slot(struct cache_slot *slot) close_slot(slot); unlock_slot(slot, 1); slot->cache_fd = slot->lock_fd; } } } - print_slot(slot); + if ((err = print_slot(slot)) != 0) { + cache_log("[cgit] error printing cache %s: %s (%d)\n", + slot->cache_name, + strerror(err), + err); + } close_slot(slot); - return 0; + return err; } /* If the cache slot does not exist (or its key doesn't match the * current key), lets try to create a new cache slot for this * request. If this fails (for whatever reason), lets just generate * the content without caching it and fool the caller to belive @@ -286,13 +291,18 @@ static int process_slot(struct cache_slot *slot) // slot, we might get a race condition with a concurrent // writer for the same cache slot (with a different key). // Lets avoid such a race by just printing the content of // the lock file. slot->cache_fd = slot->lock_fd; unlock_slot(slot, 1); - err = print_slot(slot); + if ((err = print_slot(slot)) != 0) { + cache_log("[cgit] error printing cache %s: %s (%d)\n", + slot->cache_name, + strerror(err), + err); + } close_slot(slot); return err; } /* Print cached content to stdout, generate the content if necessary. */ int cache_process(int size, const char *path, const char *key, int ttl, @@ -377,10 +377,10 @@ int main(int argc, const char **argv) ctx.page.expires += ttl*60; if (ctx.cfg.nocache) ctx.cfg.cache_size = 0; err = cache_process(ctx.cfg.cache_size, ctx.cfg.cache_root, ctx.qry.raw, ttl, process_request, &ctx); if (err) - cache_log("[cgit] error %d - %s\n", - err, strerror(err)); + cgit_print_error(fmt("Error processing page: %s (%d)", + strerror(err), err)); return err; } |