changeset 3237:2f57438d9542 HEAD

Added setegid() emulation for HP-UX.
author Timo Sirainen <tss@iki.fi>
date Sun, 27 Mar 2005 17:42:20 +0300
parents f6eb50f0d2c0
children 889a584bd953
files configure.in src/lib/compat.c src/lib/compat.h
diffstat 3 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/configure.in	Sun Mar 27 17:36:56 2005 +0300
+++ b/configure.in	Sun Mar 27 17:42:20 2005 +0300
@@ -277,8 +277,8 @@
 dnl * after -lsocket and -lnsl tests, inet_aton() may be in them
 AC_CHECK_FUNCS(fcntl flock lockf inet_aton sigaction getpagesize madvise \
                strcasecmp stricmp vsnprintf vsyslog writev pread \
-	       setrlimit setproctitle seteuid setreuid strtoull strtouq \
-	       setpriority)
+	       setrlimit setproctitle seteuid setreuid setegid setresgid \
+	       strtoull strtouq setpriority)
 
 dnl * I/O loop function
 have_ioloop=no
--- a/src/lib/compat.c	Sun Mar 27 17:36:56 2005 +0300
+++ b/src/lib/compat.c	Sun Mar 27 17:42:20 2005 +0300
@@ -174,6 +174,18 @@
 }
 #endif
 
+#ifndef HAVE_SETEGID
+int my_setegid(gid_t egid)
+{
+#ifdef HAVE_SETRESGID
+	/* HP-UX at least doesn't have setegid() but has setresgid() */
+	return setresgid(-1, egid, -1);
+#else
+#  error Missing setegid functionality
+#endif
+}
+#endif
+
 #ifndef HAVE_LIBGEN_H
 char *my_basename(char *path)
 {
--- a/src/lib/compat.h	Sun Mar 27 17:36:56 2005 +0300
+++ b/src/lib/compat.h	Sun Mar 27 17:42:20 2005 +0300
@@ -113,6 +113,11 @@
 int my_seteuid(uid_t euid);
 #endif
 
+#ifndef HAVE_SETEGID
+#  define setegid my_setegid
+int my_setegid(gid_t egid);
+#endif
+
 #ifndef HAVE_LIBGEN_H
 #  define basename my_basename
 char *my_basename(char *path);