Move sys_realpath() to libreplace.
authorJelmer Vernooij <jelmer@samba.org>
Sat, 1 Nov 2008 02:42:27 +0000 (03:42 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Sat, 1 Nov 2008 02:42:27 +0000 (03:42 +0100)
lib/replace/README
lib/replace/libreplace.m4
lib/replace/replace.c
lib/replace/replace.h
source3/include/proto.h
source3/lib/system.c
source3/modules/vfs_default.c

index 1005281a6b71b7dd019d4d0c78990e1044d49501..c1cb2d0270d04629ebe7be37eaf252250ae93f22 100644 (file)
@@ -69,6 +69,7 @@ utimes
 link
 readlink
 symlink
+realpath
 
 Types:
 bool
index cc9be162acd179b288a6b1ec082d7b7c0d2a1234..c67fa66f5c202b2575c3996e1198ee77c48fe0fb 100644 (file)
@@ -108,7 +108,7 @@ AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror)
 AC_CHECK_FUNCS(vsyslog setlinebuf mktime ftruncate chsize rename)
 AC_CHECK_FUNCS(waitpid strlcpy strlcat initgroups memmove strdup)
 AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r mkdtemp)
-AC_CHECK_FUNCS(isatty chown lchown link readlink symlink)
+AC_CHECK_FUNCS(isatty chown lchown link readlink symlink realpath)
 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
 AC_HAVE_DECL(errno, [#include <errno.h>])
index f4faef992aecd68dd7be9fa18fbbce806a6a08af..d757a0154e7736e5cf4da9e58d75865804a2345d 100644 (file)
@@ -658,3 +658,14 @@ int rep_lchown(const char *fname,uid_t uid,gid_t gid)
        return -1;
 }
 #endif
+
+#ifndef HAVE_REALPATH
+char *rep_realpath(const char *path, char *resolved_path)
+{
+       /* As realpath is not a system call we can't return ENOSYS. */
+       errno = EINVAL;
+       return NULL;
+}
+#endif
+
+
index b81bf5c576cfda08b56bbcb5ee46b161808c254c..8d0dd57064c259b248082337dfbbc668f1be9180 100644 (file)
@@ -235,6 +235,11 @@ int rep_readlink(const char *path, char *buf, size_t bufsize);
 int rep_symlink(const char *oldpath, const char *newpath);
 #endif
 
+#ifndef HAVE_REALPATH
+#define realpath rep_realpath
+char *rep_realpath(const char *path, char *resolved_path);
+#endif
+
 #ifndef HAVE_LCHOWN
 #define lchown rep_lchown
 int rep_lchown(const char *fname,uid_t uid,gid_t gid);
index 5104910e993f8e44daa60db23c5c3c0bb2073f90..e8b25667abb9b845e78c73387509492a553010b2 100644 (file)
@@ -1000,7 +1000,6 @@ long sys_telldir(SMB_STRUCT_DIR *dirp);
 void sys_rewinddir(SMB_STRUCT_DIR *dirp);
 int sys_closedir(SMB_STRUCT_DIR *dirp);
 int sys_mknod(const char *path, mode_t mode, SMB_DEV_T dev);
-char *sys_realpath(const char *path, char *resolved_path);
 int sys_waitpid(pid_t pid,int *status,int options);
 char *sys_getwd(char *s);
 int sys_chroot(const char *dname);
index 27722fcab2c2b3dc9570e18295012914cbace830..da2797322ace2c011d7afa92fdfd251a4d4ff097 100644 (file)
@@ -537,21 +537,6 @@ int sys_mknod(const char *path, mode_t mode, SMB_DEV_T dev)
 #endif
 }
 
-/*******************************************************************
- Wrapper for realpath.
-********************************************************************/
-
-char *sys_realpath(const char *path, char *resolved_path)
-{
-#if defined(HAVE_REALPATH)
-       return realpath(path, resolved_path);
-#else
-       /* As realpath is not a system call we can't return ENOSYS. */
-       errno = EINVAL;
-       return NULL;
-#endif
-}
-
 /*******************************************************************
 The wait() calls vary between systems
 ********************************************************************/
index 13c2770208cabef63898cf577eabf487768bbe56..d972828ba974c6e8f5325e526ccdc6f8e6ea6a72 100644 (file)
@@ -909,7 +909,7 @@ static char *vfswrap_realpath(vfs_handle_struct *handle,  const char *path, char
        char *result;
 
        START_PROFILE(syscall_realpath);
-       result = sys_realpath(path, resolved_path);
+       result = realpath(path, resolved_path);
        END_PROFILE(syscall_realpath);
        return result;
 }