summaryrefslogtreecommitdiff
path: root/lib/replace
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-11-01 03:35:58 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-11-01 03:35:58 +0100
commite8cda43e171c1aa8f4b858228e715290d400691c (patch)
tree38f8fec8ef93ba577920e3d8abf276771ba6caf5 /lib/replace
parentdbda9adfaf388f62cf359ea728ae303d81df81a9 (diff)
downloadsamba-e8cda43e171c1aa8f4b858228e715290d400691c.tar.gz
Move sys_symlink() to libreplace.
Diffstat (limited to 'lib/replace')
-rw-r--r--lib/replace/README1
-rw-r--r--lib/replace/libreplace.m42
-rw-r--r--lib/replace/replace.c8
-rw-r--r--lib/replace/replace.h6
4 files changed, 16 insertions, 1 deletions
diff --git a/lib/replace/README b/lib/replace/README
index ed0b866e857..f189e8716f8 100644
--- a/lib/replace/README
+++ b/lib/replace/README
@@ -67,6 +67,7 @@ utime
utimes
link
readlink
+symlink
Types:
bool
diff --git a/lib/replace/libreplace.m4 b/lib/replace/libreplace.m4
index 64df4ec5759..a93a9dad452 100644
--- a/lib/replace/libreplace.m4
+++ b/lib/replace/libreplace.m4
@@ -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 link readlink)
+AC_CHECK_FUNCS(isatty chown link readlink symlink)
AC_HAVE_DECL(setresuid, [#include <unistd.h>])
AC_HAVE_DECL(setresgid, [#include <unistd.h>])
AC_HAVE_DECL(errno, [#include <errno.h>])
diff --git a/lib/replace/replace.c b/lib/replace/replace.c
index 00a205d4723..37705b93cd6 100644
--- a/lib/replace/replace.c
+++ b/lib/replace/replace.c
@@ -642,3 +642,11 @@ int rep_readlink(const char *path, char *buf, size_t bufsiz)
return -1;
}
#endif
+
+#ifndef HAVE_SYMLINK
+int rep_symlink(const char *oldpath, const char *newpath)
+{
+ errno = ENOSYS;
+ return -1;
+}
+#endif
diff --git a/lib/replace/replace.h b/lib/replace/replace.h
index fe01a8613e6..f56c5b0dc92 100644
--- a/lib/replace/replace.h
+++ b/lib/replace/replace.h
@@ -230,6 +230,12 @@ int rep_link(const char *oldpath, const char *newpath);
int rep_readlink(const char *path, char *buf, size_t bufsize);
#endif
+#ifndef HAVE_SYMLINK
+#define symlink rep_symlink
+int rep_symlink(const char *oldpath, const char *newpath);
+#endif
+
+
#ifndef HAVE_SETLINEBUF
#define setlinebuf rep_setlinebuf
void rep_setlinebuf(FILE *);