X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fstat.c;h=e245323430321c1d008670faf5575598df11676b;hp=2441c9fe1e6d8be8d59a0257fc727b756db3aa91;hb=4d900cdac8258daa2e99c6ceb2a4985154e94150;hpb=55a7427b7679e25134cd43488a9f74cb542416ea diff --git a/daemon/stat.c b/daemon/stat.c index 2441c9f..e245323 100644 --- a/daemon/stat.c +++ b/daemon/stat.c @@ -23,11 +23,10 @@ #include #include #include -#include #include #include -#include "../src/guestfs_protocol.h" +#include "guestfs_protocol.h" #include "daemon.h" #include "actions.h" @@ -43,7 +42,7 @@ do_stat (const char *path) CHROOT_OUT; if (r == -1) { - reply_with_perror ("stat"); + reply_with_perror ("%s", path); return NULL; } @@ -61,8 +60,16 @@ do_stat (const char *path) ret->gid = statbuf.st_gid; ret->rdev = statbuf.st_rdev; ret->size = statbuf.st_size; +#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE ret->blksize = statbuf.st_blksize; +#else + ret->blksize = -1; +#endif +#ifdef HAVE_STRUCT_STAT_ST_BLOCKS ret->blocks = statbuf.st_blocks; +#else + ret->blocks = -1; +#endif ret->atime = statbuf.st_atime; ret->mtime = statbuf.st_mtime; ret->ctime = statbuf.st_ctime; @@ -82,7 +89,7 @@ do_lstat (const char *path) CHROOT_OUT; if (r == -1) { - reply_with_perror ("stat"); + reply_with_perror ("%s", path); return NULL; } @@ -100,8 +107,16 @@ do_lstat (const char *path) ret->gid = statbuf.st_gid; ret->rdev = statbuf.st_rdev; ret->size = statbuf.st_size; +#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE ret->blksize = statbuf.st_blksize; +#else + ret->blksize = -1; +#endif +#ifdef HAVE_STRUCT_STAT_ST_BLOCKS ret->blocks = statbuf.st_blocks; +#else + ret->blocks = -1; +#endif ret->atime = statbuf.st_atime; ret->mtime = statbuf.st_mtime; ret->ctime = statbuf.st_ctime; @@ -136,7 +151,7 @@ do_lstatlist (const char *path, char *const *names) CHROOT_OUT; if (path_fd == -1) { - reply_with_perror ("lstatlist: %s", path); + reply_with_perror ("%s", path); free (ret->guestfs_int_stat_list_val); free (ret); return NULL; @@ -158,8 +173,16 @@ do_lstatlist (const char *path, char *const *names) ret->guestfs_int_stat_list_val[i].gid = statbuf.st_gid; ret->guestfs_int_stat_list_val[i].rdev = statbuf.st_rdev; ret->guestfs_int_stat_list_val[i].size = statbuf.st_size; +#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE ret->guestfs_int_stat_list_val[i].blksize = statbuf.st_blksize; +#else + ret->guestfs_int_stat_list_val[i].blksize = -1; +#endif +#ifdef HAVE_STRUCT_STAT_ST_BLOCKS ret->guestfs_int_stat_list_val[i].blocks = statbuf.st_blocks; +#else + ret->guestfs_int_stat_list_val[i].blocks = -1; +#endif ret->guestfs_int_stat_list_val[i].atime = statbuf.st_atime; ret->guestfs_int_stat_list_val[i].mtime = statbuf.st_mtime; ret->guestfs_int_stat_list_val[i].ctime = statbuf.st_ctime; @@ -175,40 +198,3 @@ do_lstatlist (const char *path, char *const *names) return ret; } - -guestfs_int_statvfs * -do_statvfs (const char *path) -{ - int r; - guestfs_int_statvfs *ret; - struct statvfs statbuf; - - CHROOT_IN; - r = statvfs (path, &statbuf); - CHROOT_OUT; - - if (r == -1) { - reply_with_perror ("statvfs"); - return NULL; - } - - ret = malloc (sizeof *ret); - if (ret == NULL) { - reply_with_perror ("malloc"); - return NULL; - } - - ret->bsize = statbuf.f_bsize; - ret->frsize = statbuf.f_frsize; - ret->blocks = statbuf.f_blocks; - ret->bfree = statbuf.f_bfree; - ret->bavail = statbuf.f_bavail; - ret->files = statbuf.f_files; - ret->ffree = statbuf.f_ffree; - ret->favail = statbuf.f_favail; - ret->fsid = statbuf.f_fsid; - ret->flag = statbuf.f_flag; - ret->namemax = statbuf.f_namemax; - - return ret; -}