diff options
-rw-r--r-- | daemon/configure.ac | 1 | ||||
-rw-r--r-- | daemon/realpath.c | 15 | ||||
-rwxr-xr-x | src/generator.ml | 2 |
3 files changed, 17 insertions, 1 deletions
diff --git a/daemon/configure.ac b/daemon/configure.ac index 1d335b11..65a14858 100644 --- a/daemon/configure.ac +++ b/daemon/configure.ac @@ -183,6 +183,7 @@ AC_CHECK_FUNCS([\ ntohl \ ntohs \ posix_fallocate \ + realpath \ removexattr \ setxattr \ statvfs \ diff --git a/daemon/realpath.c b/daemon/realpath.c index f9d08dac..e6c81efb 100644 --- a/daemon/realpath.c +++ b/daemon/realpath.c @@ -28,6 +28,7 @@ #include <dirent.h> #include "daemon.h" +#include "optgroups.h" #include "actions.h" /* On Windows, NAME_MAX is not defined. */ @@ -35,9 +36,20 @@ #define NAME_MAX FILENAME_MAX #endif +int +optgroup_realpath_available (void) +{ +#ifdef HAVE_REALPATH + return 1; +#else + return 0; +#endif +} + char * do_realpath (const char *path) { +#ifdef HAVE_REALPATH char *ret; CHROOT_IN; @@ -49,6 +61,9 @@ do_realpath (const char *path) } return ret; /* caller frees */ +#else + NOT_AVAILABLE (NULL); +#endif } char * diff --git a/src/generator.ml b/src/generator.ml index 74ff3a82..9e602acd 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -3266,7 +3266,7 @@ matching lines."); This calls the external C<zfgrep -i> program and returns the matching lines."); - ("realpath", (RString "rpath", [Pathname "path"]), 163, [], + ("realpath", (RString "rpath", [Pathname "path"]), 163, [Optional "realpath"], [InitISOFS, Always, TestOutput ( [["realpath"; "/../directory"]], "/directory")], "canonicalized absolute pathname", |