summaryrefslogtreecommitdiffabout
path: root/cache.c
authorLars Hjemli <hjemli@gmail.com>2008-08-10 07:24:24 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-09-01 20:39:00 (UTC)
commit2cecf839a06ce951db0d5d95abf79004eff33ca7 (patch) (unidiff)
tree2b2617aa1ffa36913b0c7edede6792f782799b61 /cache.c
parent7fa088e99ad2c938ff296e649da33b0bcdd46f63 (diff)
downloadcgit-2cecf839a06ce951db0d5d95abf79004eff33ca7.zip
cgit-2cecf839a06ce951db0d5d95abf79004eff33ca7.tar.gz
cgit-2cecf839a06ce951db0d5d95abf79004eff33ca7.tar.bz2
cache.c: use %zd for off_t argument
Signed-off-by: Lars Hjemli <hjemli@gmail>
Diffstat (limited to 'cache.c') (more/less context) (ignore whitespace changes)
-rw-r--r--cache.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cache.c b/cache.c
index 9f02cf5..57068a1 100644
--- a/cache.c
+++ b/cache.c
@@ -323,117 +323,117 @@ int cache_process(int size, const char *path, const char *key, int ttl,
323 return 0; 323 return 0;
324 } 324 }
325 325
326 /* Verify input, calculate filenames */ 326 /* Verify input, calculate filenames */
327 if (!path) { 327 if (!path) {
328 cache_log("[cgit] Cache path not specified, caching is disabled\n"); 328 cache_log("[cgit] Cache path not specified, caching is disabled\n");
329 fn(cbdata); 329 fn(cbdata);
330 return 0; 330 return 0;
331 } 331 }
332 len = strlen(path); 332 len = strlen(path);
333 if (len > sizeof(filename) - 10) { /* 10 = "/01234567\0" */ 333 if (len > sizeof(filename) - 10) { /* 10 = "/01234567\0" */
334 cache_log("[cgit] Cache path too long, caching is disabled: %s\n", 334 cache_log("[cgit] Cache path too long, caching is disabled: %s\n",
335 path); 335 path);
336 fn(cbdata); 336 fn(cbdata);
337 return 0; 337 return 0;
338 } 338 }
339 if (!key) 339 if (!key)
340 key = ""; 340 key = "";
341 hash = hash_str(key) % size; 341 hash = hash_str(key) % size;
342 strcpy(filename, path); 342 strcpy(filename, path);
343 if (filename[len - 1] != '/') 343 if (filename[len - 1] != '/')
344 filename[len++] = '/'; 344 filename[len++] = '/';
345 for(i = 0; i < 8; i++) { 345 for(i = 0; i < 8; i++) {
346 sprintf(filename + len++, "%x", 346 sprintf(filename + len++, "%x",
347 (unsigned char)(hash & 0xf)); 347 (unsigned char)(hash & 0xf));
348 hash >>= 4; 348 hash >>= 4;
349 } 349 }
350 filename[len] = '\0'; 350 filename[len] = '\0';
351 strcpy(lockname, filename); 351 strcpy(lockname, filename);
352 strcpy(lockname + len, ".lock"); 352 strcpy(lockname + len, ".lock");
353 slot.fn = fn; 353 slot.fn = fn;
354 slot.cbdata = cbdata; 354 slot.cbdata = cbdata;
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 %10lld %s\n", 419 printf("%s %s %10zd %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 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