Thread: Password with libpq

Password with libpq

From
reina_ga@hotmail.com (Tony Reina)
Date:
I'm setting my PostgreSQL server to demand md5 encrypted passwords
from users. In my C programs (using libpq as the interface), it's no
big deal to pass the password through PQconnectdb.

However, what about in the general case where my client program
doesn't know if a password is required or not. Is there any libpq
function to query the server if a password is required? Perhaps,
there's a return value for PQconnectdb which would tell me that the
connection failed because of the password? (In which case, I can ask
for the password and try the connection again.)

Thanks.
-Tony

Re: Password with libpq

From
Tom Lane
Date:
reina_ga@hotmail.com (Tony Reina) writes:
> However, what about in the general case where my client program
> doesn't know if a password is required or not. Is there any libpq
> function to query the server if a password is required? Perhaps,
> there's a return value for PQconnectdb which would tell me that the
> connection failed because of the password? (In which case, I can ask
> for the password and try the connection again.)

Look into the psql source code; it does essentially this.

            regards, tom lane

Re: Password with libpq

From
"Tony and Bryn Reina"
Date:
Thanks Tom. I found the relevant bit of code in the psql files. Looks like
it's just a simple loop that compares the error with the phrase
"fe_sendauth: no password supplied" and then prompts for the password and
tries again. Of course, if someone in the future decides to change the error
message, then the code gets broke. I doubt that's likely however.

-Tony



----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Tony Reina" <reina_ga@hotmail.com>
Cc: <pgsql-admin@postgresql.org>
Sent: Monday, June 28, 2004 12:12 AM
Subject: Re: [ADMIN] Password with libpq


> reina_ga@hotmail.com (Tony Reina) writes:
> > However, what about in the general case where my client program
> > doesn't know if a password is required or not. Is there any libpq
> > function to query the server if a password is required? Perhaps,
> > there's a return value for PQconnectdb which would tell me that the
> > connection failed because of the password? (In which case, I can ask
> > for the password and try the connection again.)
>
> Look into the psql source code; it does essentially this.
>
> regards, tom lane
>

Re: Password with libpq

From
Peter Eisentraut
Date:
Tony and Bryn Reina wrote:
> Thanks Tom. I found the relevant bit of code in the psql files. Looks
> like it's just a simple loop that compares the error with the phrase
> "fe_sendauth: no password supplied" and then prompts for the password
> and tries again. Of course, if someone in the future decides to
> change the error message, then the code gets broke. I doubt that's
> likely however.

Eventually, we should introduce error codes for this situation.