From: Ben Pfaff Date: Wed, 21 Apr 2010 17:47:45 +0000 (-0700) Subject: socket-util: Move get_mtime() here from stream-ssl. X-Git-Tag: v1.0.0~84 X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=26efd2563bf76547cf38da49ec83997e091b2517;p=cascardo%2Fovs.git socket-util: Move get_mtime() here from stream-ssl. An upcoming commit will add a new user for this function in another file, so export it and move it to a common library file. --- diff --git a/lib/socket-util.c b/lib/socket-util.c index 350f5f065..4965b63af 100644 --- a/lib/socket-util.c +++ b/lib/socket-util.c @@ -611,3 +611,31 @@ fsync_parent_dir(const char *file_name) return error; } + +/* Obtains the modification time of the file named 'file_name' to the greatest + * supported precision. If successful, stores the mtime in '*mtime' and + * returns 0. On error, returns a positive errno value and stores zeros in + * '*mtime'. */ +int +get_mtime(const char *file_name, struct timespec *mtime) +{ + struct stat s; + + if (!stat(file_name, &s)) { + mtime->tv_sec = s.st_mtime; + +#if HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC + mtime->tv_nsec = s.st_mtim.tv_nsec; +#elif HAVE_STRUCT_STAT_ST_MTIMENSEC + mtime->tv_nsec = s.st_mtimensec; +#else + mtime->tv_nsec = 0; +#endif + + return 0; + } else { + mtime->tv_sec = mtime->tv_nsec = 0; + return errno; + } +} + diff --git a/lib/socket-util.h b/lib/socket-util.h index f5d60105e..40a96144d 100644 --- a/lib/socket-util.h +++ b/lib/socket-util.h @@ -45,5 +45,6 @@ int read_fully(int fd, void *, size_t, size_t *bytes_read); int write_fully(int fd, const void *, size_t, size_t *bytes_written); int fsync_parent_dir(const char *file_name); +int get_mtime(const char *file_name, struct timespec *mtime); #endif /* socket-util.h */ diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c index aeca21ecc..27c9d4c92 100644 --- a/lib/stream-ssl.c +++ b/lib/stream-ssl.c @@ -37,7 +37,6 @@ #include "packets.h" #include "poll-loop.h" #include "socket-util.h" -#include "socket-util.h" #include "util.h" #include "stream-provider.h" #include "stream.h" @@ -915,26 +914,6 @@ stream_ssl_is_configured(void) return private_key.file_name || certificate.file_name || ca_cert.file_name; } -static void -get_mtime(const char *file_name, struct timespec *mtime) -{ - struct stat s; - - if (!stat(file_name, &s)) { - mtime->tv_sec = s.st_mtime; - -#if HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC - mtime->tv_nsec = s.st_mtim.tv_nsec; -#elif HAVE_STRUCT_STAT_ST_MTIMENSEC - mtime->tv_nsec = s.st_mtimensec; -#else - mtime->tv_nsec = 0; -#endif - } else { - mtime->tv_sec = mtime->tv_nsec = 0; - } -} - static bool update_ssl_config(struct ssl_config_file *config, const char *file_name) {