diff options
author | Bruce Momjian <bruce@momjian.us> | 2010-03-13 14:55:57 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2010-03-13 14:55:57 +0000 |
commit | a6c1cea2b7ac446558ce0cde14b19e74220eeb7f (patch) | |
tree | 9e6e87e2897d671579d045517589df533f475fdc /src/backend/libpq/auth.c | |
parent | 8b2ae44dc8dd56511c7004c5b117b720081dc8fb (diff) | |
download | postgresql-a6c1cea2b7ac446558ce0cde14b19e74220eeb7f.tar.gz postgresql-a6c1cea2b7ac446558ce0cde14b19e74220eeb7f.zip |
Add libpq warning message if the .pgpass-retrieved password fails.
Add ERRCODE_INVALID_PASSWORD sqlstate error code.
Diffstat (limited to 'src/backend/libpq/auth.c')
-rw-r--r-- | src/backend/libpq/auth.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index 70b0f665665..8838113c575 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.195 2010/02/26 02:00:42 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.196 2010/03/13 14:55:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -232,7 +232,8 @@ static void auth_failed(Port *port, int status) { const char *errstr; - + int errcode_return = ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION; + /* * If we failed due to EOF from client, just quit; there's no point in * trying to send a message to the client, and not much point in logging @@ -269,6 +270,8 @@ auth_failed(Port *port, int status) case uaMD5: case uaPassword: errstr = gettext_noop("password authentication failed for user \"%s\""); + /* We use it to indicate if a .pgpass password failed. */ + errcode_return = ERRCODE_INVALID_PASSWORD; break; case uaPAM: errstr = gettext_noop("PAM authentication failed for user \"%s\""); @@ -285,7 +288,7 @@ auth_failed(Port *port, int status) } ereport(FATAL, - (errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION), + (errcode(errcode_return), errmsg(errstr, port->user_name))); /* doesn't return */ } |