John Fawcett via Postfix-users:
> The postgresql C library has two different functions for connecting to 
> the database, one based on the url type syntax and one based on explicit 
> parameters. When deciding which function to call, Postfix checks whether 
> the hosts parameter starts with postgresql. In your original 
> configuration I guess this was the case, but from the error message, I 
> doubt whether that is still the case.
> 
> If you go back to the postgresql:// syntax hopefully you will solve the 
> problem.

This was changed in Postfix 3.10. With Postfix 3.3-3.9 the TYPECONNSTR
value below means the name starts with "postgresql:", while in
Postfix 3.10 it means that the name contains ANY valid URI scheme.

static void plpgsql_connect_single(DICT_PGSQL *dict_pgsql, HOST *host)
{
    if (host->type == TYPECONNSTR) {
        host->db = PQconnectdb(host->name);
    } else {
        host->db = PQsetdbLogin(host->name, host->port, NULL, NULL,
                                dict_pgsql->dbname, dict_pgsql->username,
                                dict_pgsql->password);
    if (host->db == NULL || PQstatus(host->db) != CONNECTION_OK) {
        msg_warn("connect to pgsql server %s: %s",
                 host->hostname, PQerrorMessage(host->db));

        Wietse
_______________________________________________
Postfix-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to