diff options
Diffstat (limited to 'src/backend/libpq/auth.c')
-rw-r--r-- | src/backend/libpq/auth.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index c12b810c3d5..5399144c20c 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -77,9 +77,7 @@ static int ident_inet(hbaPort *port); * Peer authentication *---------------------------------------------------------------- */ -#ifdef HAVE_UNIX_SOCKETS static int auth_peer(hbaPort *port); -#endif /*---------------------------------------------------------------- @@ -559,11 +557,7 @@ ClientAuthentication(Port *port) break; case uaPeer: -#ifdef HAVE_UNIX_SOCKETS status = auth_peer(port); -#else - Assert(false); -#endif break; case uaIdent: @@ -1984,16 +1978,16 @@ ident_inet_done: * * Iff authorized, return STATUS_OK, otherwise return STATUS_ERROR. */ -#ifdef HAVE_UNIX_SOCKETS - static int auth_peer(hbaPort *port) { uid_t uid; gid_t gid; +#ifndef WIN32 struct passwd *pw; char *peer_user; int ret; +#endif if (getpeereid(port->sock, &uid, &gid) != 0) { @@ -2009,6 +2003,7 @@ auth_peer(hbaPort *port) return STATUS_ERROR; } +#ifndef WIN32 errno = 0; /* clear errno before call */ pw = getpwuid(uid); if (!pw) @@ -2030,8 +2025,12 @@ auth_peer(hbaPort *port) pfree(peer_user); return ret; +#else + /* should have failed with ENOSYS above */ + Assert(false); + return STATUS_ERROR; +#endif } -#endif /* HAVE_UNIX_SOCKETS */ /*---------------------------------------------------------------- |