summaryrefslogtreecommitdiffabout
path: root/cache.c
Unidiff
Diffstat (limited to 'cache.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cache.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/cache.c b/cache.c
index 57068a1..d7a8d5a 100644
--- a/cache.c
+++ b/cache.c
@@ -355,85 +355,85 @@ int cache_process(int size, const char *path, const char *key, int ttl,
355 slot.ttl = ttl; 355 slot.ttl = ttl;
356 slot.cache_name = filename; 356 slot.cache_name = filename;
357 slot.lock_name = lockname; 357 slot.lock_name = lockname;
358 slot.key = key; 358 slot.key = key;
359 slot.keylen = strlen(key); 359 slot.keylen = strlen(key);
360 return process_slot(&slot); 360 return process_slot(&slot);
361} 361}
362 362
363/* Return a strftime formatted date/time 363/* Return a strftime formatted date/time
364 * NB: the result from this function is to shared memory 364 * NB: the result from this function is to shared memory
365 */ 365 */
366char *sprintftime(const char *format, time_t time) 366char *sprintftime(const char *format, time_t time)
367{ 367{
368 static char buf[64]; 368 static char buf[64];
369 struct tm *tm; 369 struct tm *tm;
370 370
371 if (!time) 371 if (!time)
372 return NULL; 372 return NULL;
373 tm = gmtime(&time); 373 tm = gmtime(&time);
374 strftime(buf, sizeof(buf)-1, format, tm); 374 strftime(buf, sizeof(buf)-1, format, tm);
375 return buf; 375 return buf;
376} 376}
377 377
378int cache_ls(const char *path) 378int cache_ls(const char *path)
379{ 379{
380 DIR *dir; 380 DIR *dir;
381 struct dirent *ent; 381 struct dirent *ent;
382 int err = 0; 382 int err = 0;
383 struct cache_slot slot; 383 struct cache_slot slot;
384 char fullname[1024]; 384 char fullname[1024];
385 char *name; 385 char *name;
386 386
387 if (!path) { 387 if (!path) {
388 cache_log("[cgit] cache path not specified\n"); 388 cache_log("[cgit] cache path not specified\n");
389 return -1; 389 return -1;
390 } 390 }
391 if (strlen(path) > 1024 - 10) { 391 if (strlen(path) > 1024 - 10) {
392 cache_log("[cgit] cache path too long: %s\n", 392 cache_log("[cgit] cache path too long: %s\n",
393 path); 393 path);
394 return -1; 394 return -1;
395 } 395 }
396 dir = opendir(path); 396 dir = opendir(path);
397 if (!dir) { 397 if (!dir) {
398 err = errno; 398 err = errno;
399 cache_log("[cgit] unable to open path %s: %s (%d)\n", 399 cache_log("[cgit] unable to open path %s: %s (%d)\n",
400 path, strerror(err), err); 400 path, strerror(err), err);
401 return err; 401 return err;
402 } 402 }
403 strcpy(fullname, path); 403 strcpy(fullname, path);
404 name = fullname + strlen(path); 404 name = fullname + strlen(path);
405 if (*(name - 1) != '/') { 405 if (*(name - 1) != '/') {
406 *name++ = '/'; 406 *name++ = '/';
407 *name = '\0'; 407 *name = '\0';
408 } 408 }
409 slot.cache_name = fullname; 409 slot.cache_name = fullname;
410 while((ent = readdir(dir)) != NULL) { 410 while((ent = readdir(dir)) != NULL) {
411 if (strlen(ent->d_name) != 8) 411 if (strlen(ent->d_name) != 8)
412 continue; 412 continue;
413 strcpy(name, ent->d_name); 413 strcpy(name, ent->d_name);
414 if ((err = open_slot(&slot)) != 0) { 414 if ((err = open_slot(&slot)) != 0) {
415 cache_log("[cgit] unable to open path %s: %s (%d)\n", 415 cache_log("[cgit] unable to open path %s: %s (%d)\n",
416 fullname, strerror(err), err); 416 fullname, strerror(err), err);
417 continue; 417 continue;
418 } 418 }
419 printf("%s %s %10zd %s\n", 419 printf("%s %s %10"PRIuMAX" %s\n",
420 name, 420 name,
421 sprintftime("%Y-%m-%d %H:%M:%S", 421 sprintftime("%Y-%m-%d %H:%M:%S",
422 slot.cache_st.st_mtime), 422 slot.cache_st.st_mtime),
423 slot.cache_st.st_size, 423 (uintmax_t)slot.cache_st.st_size,
424 slot.buf); 424 slot.buf);
425 close_slot(&slot); 425 close_slot(&slot);
426 } 426 }
427 closedir(dir); 427 closedir(dir);
428 return 0; 428 return 0;
429} 429}
430 430
431/* Print a message to stdout */ 431/* Print a message to stdout */
432void cache_log(const char *format, ...) 432void cache_log(const char *format, ...)
433{ 433{
434 va_list args; 434 va_list args;
435 va_start(args, format); 435 va_start(args, format);
436 vfprintf(stderr, format, args); 436 vfprintf(stderr, format, args);
437 va_end(args); 437 va_end(args);
438} 438}
439 439