> -----Original Message-----
> From: Andrew Dunstan [mailto:andrew@dunslane.net]
> Sent: Tuesday, April 28, 2009 2:27 PM
> To: Dann Corbit
> Cc: pgsql-hackers@postgresql.org
> Subject: Re: [HACKERS] Building Postgresql under Windows question
>
>
>
> Dann Corbit wrote:
> > In this function:
> > static bool
> > test_postmaster_connection(bool do_checkpoint)
> >
> > This code will never succeed:
> > snprintf(connstr, sizeof(connstr),
> > "dbname=postgres port=%s connect_timeout=5",
> > portstr);
> >
> > for (i = 0; i < wait_seconds; i++)
> > {
> > if ((conn = PQconnectdb(connstr)) != NULL &&
> > (PQstatus(conn) == CONNECTION_OK ||
> > PQconnectionNeedsPassword(conn)))
> > {
> > PQfinish(conn);
> > success = true;
> > break;
> > }
> >
> >
> > Because pg_hba.conf has this:
> > # TYPE DATABASE USER CIDR-ADDRESS METHOD
> >
> > # IPv4 local connections:
> > host all all 127.0.0.1/32 trust
> > # IPv6 local connections:
> > host all all ::1/128 trust
> >
> > to allow connections from the local machine.
> >
> > (A password is not needed to connect, so the code always fails).
> >
> >
>
>
> Why won't
>
> PQstatus(conn) == CONNECTION_OK
>
> be true and thus the code will succeed without requiring a password?
It returns the value CONNECTION_STARTED
I have found a work-around for now.
If I set the method to password in pg_hba.conf, the service starts and
runs correctly.
It is only when the method is set to trust that we get 100% failures.