OSDN Git Service

Fix PQsetdbLogin() backward compatibility problem.
authorTatsuo Ishii <ishii@postgresql.org>
Fri, 22 Dec 2000 07:59:32 +0000 (07:59 +0000)
committerTatsuo Ishii <ishii@postgresql.org>
Fri, 22 Dec 2000 07:59:32 +0000 (07:59 +0000)
If pghost == "" and pgport == "" then PQsetdbLogin() fails with a
error message:

 Is the postmaster running locally
        and accepting connections on Unix socket '/tmp/.s.PGSQL.0'?

I see many applications such as PHP fails due to this behavior.
Now if pgport == "", then it is assumed to be a DEF_PGPORT_STR. This
is the same behavior as the version prior 7.1.

src/interfaces/libpq/fe-connect.c

index 868b73f..0c6ff92 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.155 2000/12/18 17:33:41 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.156 2000/12/22 07:59:32 ishii Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -438,7 +438,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
        else if ((tmp = getenv("PGHOST")) != NULL)
                conn->pghost = strdup(tmp);
 
-       if (pgport == NULL)
+       if (pgport == NULL || pgport[0] == '\0')
        {
                if ((tmp = getenv("PGPORT")) == NULL)
                        tmp = DEF_PGPORT_STR;