summaryrefslogtreecommitdiffstats
path: root/daemon
diff options
context:
space:
mode:
authorRichard Jones <rich@hakodate.home.annexia.org>2009-05-06 15:29:01 +0100
committerRichard Jones <rich@hakodate.home.annexia.org>2009-05-06 15:29:01 +0100
commitbb98bbb91c74cca47b5e1f79fd54f4024572fd22 (patch)
tree6dafc41d168f059608d2efb47c9c7cad4d18b08e /daemon
parent459da0831ca259fc06dacb773e5ce602bd4ac226 (diff)
downloadlibguestfs-bb98bbb91c74cca47b5e1f79fd54f4024572fd22.tar.gz
libguestfs-bb98bbb91c74cca47b5e1f79fd54f4024572fd22.tar.xz
libguestfs-bb98bbb91c74cca47b5e1f79fd54f4024572fd22.zip
Fix missing futimens bug.
Diffstat (limited to 'daemon')
-rw-r--r--daemon/configure.ac3
-rw-r--r--daemon/file.c8
2 files changed, 10 insertions, 1 deletions
diff --git a/daemon/configure.ac b/daemon/configure.ac
index f78b3088..6cf4c0f0 100644
--- a/daemon/configure.ac
+++ b/daemon/configure.ac
@@ -59,6 +59,9 @@ AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
])
+dnl Functions which may not be available in older distributions.
+AC_CHECK_FUNCS([futimens])
+
dnl Produce output files.
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile])
diff --git a/daemon/file.c b/daemon/file.c
index f910b947..8847d262 100644
--- a/daemon/file.c
+++ b/daemon/file.c
@@ -33,6 +33,7 @@ int
do_touch (const char *path)
{
int fd;
+ int r;
NEED_ROOT (-1);
ABS_PATH (path, -1);
@@ -46,7 +47,12 @@ do_touch (const char *path)
return -1;
}
- if (futimens (fd, NULL) == -1) {
+#ifdef HAVE_FUTIMENS
+ r = futimens (fd, NULL);
+#else
+ r = futimes (fd, NULL);
+#endif
+ if (r == -1) {
reply_with_perror ("futimens: %s", path);
close (fd);
return -1;