aboutsummaryrefslogtreecommitdiff
path: root/src/backend/libpq/auth.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-12-20 18:25:02 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-12-20 18:25:02 +0000
commit7133152c5b604ed7b1e4e3f80df7109401bed8d5 (patch)
treec0c1b4aeb947efa5579afbb0ee23af0378f384f6 /src/backend/libpq/auth.c
parent46b5820dc00a271f1711ba451fb460b0725e9a6e (diff)
downloadpostgresql-7133152c5b604ed7b1e4e3f80df7109401bed8d5.tar.gz
postgresql-7133152c5b604ed7b1e4e3f80df7109401bed8d5.zip
Fix broken IDENT support for FreeBSD (appears to have been broken by
ill-considered conditional logic in getpeereid patch of 3-Dec-2002). Per bug #1021.
Diffstat (limited to 'src/backend/libpq/auth.c')
-rw-r--r--src/backend/libpq/auth.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index 65b1da63285..b339e42877e 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.112 2003/09/26 15:27:31 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.112.2.1 2003/12/20 18:25:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -471,32 +471,31 @@ ClientAuthentication(Port *port)
break;
case uaIdent:
-#if defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || \
- (defined(HAVE_STRUCT_SOCKCRED) && defined(LOCAL_CREDS)) && \
- !defined(HAVE_GETPEEREID) && !defined(SO_PEERCRED)
-
/*
* If we are doing ident on unix-domain sockets, use SCM_CREDS
* only if it is defined and SO_PEERCRED isn't.
*/
-#if defined(HAVE_STRUCT_FCRED) || defined(HAVE_STRUCT_SOCKCRED)
-
- /*
- * Receive credentials on next message receipt, BSD/OS,
- * NetBSD. We need to set this before the client sends the
- * next packet.
- */
+#if !defined(HAVE_GETPEEREID) && !defined(SO_PEERCRED) && \
+ (defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || \
+ (defined(HAVE_STRUCT_SOCKCRED) && defined(LOCAL_CREDS)))
+ if (port->raddr.addr.ss_family == AF_UNIX)
{
+#if defined(HAVE_STRUCT_FCRED) || defined(HAVE_STRUCT_SOCKCRED)
+ /*
+ * Receive credentials on next message receipt, BSD/OS,
+ * NetBSD. We need to set this before the client sends the
+ * next packet.
+ */
int on = 1;
if (setsockopt(port->sock, 0, LOCAL_CREDS, &on, sizeof(on)) < 0)
ereport(FATAL,
(errcode_for_socket_access(),
errmsg("could not enable credential reception: %m")));
- }
#endif
- if (port->raddr.addr.ss_family == AF_UNIX)
+
sendAuthRequest(port, AUTH_REQ_SCM_CREDS);
+ }
#endif
status = authident(port);
break;