From 6973ef9be449dc3a28c6f2e30ebd08ade447d3d6 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 14 Sep 2005 23:27:52 +0000 Subject: [PATCH] Add a touch_file() function to compat so we can update cache mtimes. svn:r5067 --- configure.in | 2 +- src/common/compat.c | 15 +++++++++++++++ src/common/compat.h | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 38b5b3a7de..34718d82ea 100644 --- a/configure.in +++ b/configure.in @@ -304,7 +304,7 @@ AC_CHECK_HEADERS(zlib.h, , AC_MSG_ERROR(Zlib header (zlib.h) not found. Tor requ dnl These headers are not essential -AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h stddef.h inttypes.h) +AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h stddef.h inttypes.h utime.h sys/utime.h) AC_CHECK_FUNCS(gettimeofday ftime socketpair uname inet_aton strptime getrlimit setrlimit strlcat strlcpy strtoull getpwnam ftello getaddrinfo localtime_r gmtime_r event_get_version event_get_method event_set_log_callback memmem) diff --git a/src/common/compat.c b/src/common/compat.c index 39b8f953fe..3718123a7f 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -80,6 +80,12 @@ const char compat_c_id[] = "$Id$"; #ifdef HAVE_PTHREAD_H #include #endif +#ifdef HAVE_UTIME_H +#include +#endif +#ifdef HAVE_SYS_UTIME_H +#include +#endif #include "log.h" #include "util.h" @@ -269,6 +275,15 @@ replace_file(const char *from, const char *to) #endif } +/** Change fname's modification time to now. */ +int +touch_file(const char *fname) +{ + if (utime(fname, NULL)!=0) + return -1; + return 0; +} + /** Turn socket into a nonblocking socket. */ void diff --git a/src/common/compat.h b/src/common/compat.h index 686a9345b1..6bccf98c17 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -127,6 +127,7 @@ struct tm *tor_gmtime_r(const time_t *timep, struct tm *result); /* ===== File compatibility */ int replace_file(const char *from, const char *to); +int touch_file(const char *fname); #ifdef MS_WINDOWS #define PATH_SEPARATOR "\\"