Skip to content
Snippets Groups Projects
Commit be83aac6 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Disable local creds on OpenBSD because it doesn't support it. Document

supported platforms in pg_hba.conf.
parent 16b9b758
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.67 2001/09/21 20:31:45 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.68 2001/09/26 19:54:12 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -520,7 +520,7 @@ ClientAuthentication(Port *port) ...@@ -520,7 +520,7 @@ ClientAuthentication(Port *port)
break; break;
case uaIdent: case uaIdent:
#if !defined(SO_PEERCRED) && (defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || defined(HAVE_STRUCT_SOCKCRED)) #if !defined(SO_PEERCRED) && (defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || (defined(HAVE_STRUCT_SOCKCRED) && defined(LOCAL_CREDS)))
/* /*
* If we are doing ident on unix-domain sockets, * If we are doing ident on unix-domain sockets,
* use SCM_CREDS only if it is defined and SO_PEERCRED isn't. * use SCM_CREDS only if it is defined and SO_PEERCRED isn't.
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.72 2001/09/21 20:31:46 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.73 2001/09/26 19:54:12 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -904,7 +904,7 @@ ident_unix(int sock, char *ident_user) ...@@ -904,7 +904,7 @@ ident_unix(int sock, char *ident_user)
return true; return true;
#elif defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || defined(HAVE_STRUCT_SOCKCRED) #elif defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || (defined(HAVE_STRUCT_SOCKCRED) && defined(LOCAL_CREDS))
struct msghdr msg; struct msghdr msg;
/* Credentials structure */ /* Credentials structure */
......
...@@ -125,18 +125,21 @@ ...@@ -125,18 +125,21 @@
# not store encrypted passwords if you use this option. # not store encrypted passwords if you use this option.
# #
# ident: For TCP/IP connections, authentication is done by contacting # ident: For TCP/IP connections, authentication is done by contacting
# the ident server on the client host. (CAUTION: this is only # the ident server on the client host. (CAUTION: this is
# as secure as the client machine!) On machines that support # only as secure as the client machine!) On machines that
# SO_PEERCRED or SCM_CREDS socket requests, this method also # support unix-domain socket credentials (currently Linux,
# works for local Unix-domain connections. AUTH_ARGUMENT is # FreeBSD, NetBSD, and BSD/OS), this method also works for
# required: it determines how to map remote user names to # "local" connections.
# Postgres user names. The AUTH_ARGUMENT is a map name found #
# in the $PGDATA/pg_ident.conf file. The connection is accepted # AUTH_ARGUMENT is required: it determines how to map
# if that file contains an entry for this map name with the # remote user names to Postgres user names. The
# ident-supplied username and the requested Postgres username. # AUTH_ARGUMENT is a map name found in the
# The special map name "sameuser" indicates an implied map # $PGDATA/pg_ident.conf file. The connection is accepted
# (not in pg_ident.conf) that maps each ident username to the # if that file contains an entry for this map name with
# identical PostgreSQL username. # the ident-supplied username and the requested Postgres
# username. The special map name "sameuser" indicates an
# implied map (not in pg_ident.conf) that maps each ident
# username to the identical PostgreSQL username.
# #
# krb4: Kerberos V4 authentication is used. Allowed only for # krb4: Kerberos V4 authentication is used. Allowed only for
# TCP/IP connections, not for local UNIX-domain sockets. # TCP/IP connections, not for local UNIX-domain sockets.
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes). * exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes).
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.60 2001/09/21 20:31:49 tgl Exp $ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.61 2001/09/26 19:54:12 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -435,10 +435,10 @@ pg_krb5_sendauth(char *PQerrormsg, int sock, ...@@ -435,10 +435,10 @@ pg_krb5_sendauth(char *PQerrormsg, int sock,
#endif /* KRB5 */ #endif /* KRB5 */
#if defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || defined(HAVE_STRUCT_SOCKCRED)
static int static int
pg_local_sendauth(char *PQerrormsg, PGconn *conn) pg_local_sendauth(char *PQerrormsg, PGconn *conn)
{ {
#if defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || (defined(HAVE_STRUCT_SOCKCRED) && defined(LOCAL_CREDS))
char buf; char buf;
struct iovec iov; struct iovec iov;
struct msghdr msg; struct msghdr msg;
...@@ -485,8 +485,12 @@ pg_local_sendauth(char *PQerrormsg, PGconn *conn) ...@@ -485,8 +485,12 @@ pg_local_sendauth(char *PQerrormsg, PGconn *conn)
return STATUS_ERROR; return STATUS_ERROR;
} }
return STATUS_OK; return STATUS_OK;
} #else
snprintf(PQerrormsg, PQERRORMSG_LENGTH,
libpq_gettext("SCM_CRED authentication method not supported\n"));
return STATUS_ERROR;
#endif #endif
}
static int static int
pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq) pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq)
...@@ -614,14 +618,8 @@ fe_sendauth(AuthRequest areq, PGconn *conn, const char *hostname, ...@@ -614,14 +618,8 @@ fe_sendauth(AuthRequest areq, PGconn *conn, const char *hostname,
break; break;
case AUTH_REQ_SCM_CREDS: case AUTH_REQ_SCM_CREDS:
#if defined(HAVE_STRUCT_CMSGCRED) || defined(HAVE_STRUCT_FCRED) || defined(HAVE_STRUCT_SOCKCRED)
if (pg_local_sendauth(PQerrormsg, conn) != STATUS_OK) if (pg_local_sendauth(PQerrormsg, conn) != STATUS_OK)
return STATUS_ERROR; return STATUS_ERROR;
#else
snprintf(PQerrormsg, PQERRORMSG_LENGTH,
libpq_gettext("SCM_CRED authentication method not supported\n"));
return STATUS_ERROR;
#endif
break; break;
default: default:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment