summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2004-03-20 15:39:40 +0000
committerBruce Momjian <bruce@momjian.us>2004-03-20 15:39:40 +0000
commit21a7569b1a43d327551b2388a7f6e33e2477439f (patch)
tree0a9376b8ee837b4c9f03af27b98c8b5dd606ef14 /src
parent774571fd0878367378e5aed6083441a3ea3f3801 (diff)
Handle draft version of getpwuid_r() that accepts only four arguments.
Backpatch to 7.4.X. Required for Solaris 7 & 8.
Diffstat (limited to 'src')
-rw-r--r--src/include/pg_config.h.in3
-rw-r--r--src/port/thread.c13
2 files changed, 11 insertions, 5 deletions
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 4691b81da32..22765878856 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -43,6 +43,9 @@
(--enable-thread-safety) */
#undef ENABLE_THREAD_SAFETY
+/* Define to 1 if getpwuid_r() takes a 5th argument. */
+#undef GETPWUID_R_5ARG
+
/* Define to 1 if gettimeofday() takes only 1 argument. */
#undef GETTIMEOFDAY_1ARG
diff --git a/src/port/thread.c b/src/port/thread.c
index 9c1b3f3167b..2c8efd95d25 100644
--- a/src/port/thread.c
+++ b/src/port/thread.c
@@ -7,7 +7,7 @@
*
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
*
- * $Id: thread.c,v 1.12.2.3 2004/03/14 14:01:54 momjian Exp $
+ * $Id: thread.c,v 1.12.2.4 2004/03/20 15:39:40 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -107,14 +107,17 @@ pqGetpwuid(uid_t uid, struct passwd *resultbuf, char *buffer,
size_t buflen, struct passwd **result)
{
#if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY) && defined(NEED_REENTRANT_FUNCS) && defined(HAVE_GETPWUID_R)
+
+#ifdef GETPWUID_R_5ARG
+ /* POSIX version */
+ getpwuid_r(uid, resultbuf, buffer, buflen, result);
+#else
/*
* Early POSIX draft of getpwuid_r() returns 'struct passwd *'.
* getpwuid_r(uid, resultbuf, buffer, buflen)
- * Do we need to support it? bjm 2003-08-14
*/
- /* POSIX version */
- getpwuid_r(uid, resultbuf, buffer, buflen, result);
-
+ result = getpwuid_r(uid, resultbuf, buffer, buflen);
+#endif
#else
#if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY) && defined(NEED_REENTRANT_FUNCS) && !defined(HAVE_GETPWUID_R)