freeifaddrs
utime
utimes
+dup2
+ link
+ readlink
+ symlink
+ realpath
Types:
bool
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(pread pwrite strndup strcasestr strtok_r mkdtemp dup2)
- AC_CHECK_FUNCS(isatty)
+ 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>])
}
#endif
+#ifndef HAVE_DUP2
+int rep_dup2(int oldfd, int newfd)
+{
+ errno = ENOSYS;
+ return -1;
+}
+#endif
+
+ #ifndef HAVE_CHOWN
+ /**
+ chown isn't used much but OS/2 doesn't have it
+ **/
+ int rep_chown(const char *fname, uid_t uid, gid_t gid)
+ {
+ errno = ENOSYS;
+ return -1;
+ }
+ #endif
+
+ #ifndef HAVE_LINK
+ int rep_link(const char *oldpath, const char *newpath)
+ {
+ errno = ENOSYS;
+ return -1;
+ }
+ #endif
+
+ #ifndef HAVE_READLINK
+ int rep_readlink(const char *path, char *buf, size_t bufsiz)
+ {
+ errno = ENOSYS;
+ return -1;
+ }
+ #endif
+
+ #ifndef HAVE_SYMLINK
+ int rep_symlink(const char *oldpath, const char *newpath)
+ {
+ errno = ENOSYS;
+ return -1;
+ }
+ #endif
+
+ #ifndef HAVE_LCHOWN
+ int rep_lchown(const char *fname,uid_t uid,gid_t gid)
+ {
+ errno = ENOSYS;
+ 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
pid_t sys_getpid(void);
int sys_popen(const char *command);
int sys_pclose(int fd);
- void *sys_dlopen(const char *name, int flags);
- void *sys_dlsym(void *handle, const char *symbol);
- int sys_dlclose (void *handle);
- const char *sys_dlerror(void);
-int sys_dup2(int oldfd, int newfd) ;
ssize_t sys_getxattr (const char *path, const char *name, void *value, size_t size);
ssize_t sys_lgetxattr (const char *path, const char *name, void *value, size_t size);
ssize_t sys_fgetxattr (int filedes, const char *name, void *value, size_t size);
return wstatus;
}
- /**************************************************************************
- Wrappers for dlopen, dlsym, dlclose.
- ****************************************************************************/
-
- void *sys_dlopen(const char *name, int flags)
- {
- #if defined(HAVE_DLOPEN)
- return dlopen(name, flags);
- #else
- return NULL;
- #endif
- }
-
- void *sys_dlsym(void *handle, const char *symbol)
- {
- #if defined(HAVE_DLSYM)
- return dlsym(handle, symbol);
- #else
- return NULL;
- #endif
- }
-
- int sys_dlclose (void *handle)
- {
- #if defined(HAVE_DLCLOSE)
- return dlclose(handle);
- #else
- return 0;
- #endif
- }
-
- const char *sys_dlerror(void)
-int sys_dup2(int oldfd, int newfd)
--{
- #if defined(HAVE_DLERROR)
- return dlerror();
-#if defined(HAVE_DUP2)
- return dup2(oldfd, newfd);
--#else
- return NULL;
- errno = ENOSYS;
- return -1;
--#endif
--}
--
/**************************************************************************
Wrapper for Admin Logs.
****************************************************************************/