aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/psql/command.c10
-rw-r--r--src/interfaces/libpq/fe-connect.c5
-rw-r--r--src/interfaces/libpq/libpq-int.h7
3 files changed, 9 insertions, 13 deletions
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 3a82e37401c..438a4ec8ea2 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -322,8 +322,6 @@ exec_command(const char *cmd,
PQconninfoOption *option;
host = PQhost(pset.db);
- if (host == NULL)
- host = DEFAULT_PGSOCKET_DIR;
/* A usable "hostaddr" overrides the basic sense of host. */
connOptions = PQconninfo(pset.db);
if (connOptions == NULL)
@@ -1750,16 +1748,14 @@ do_connect(char *dbname, char *user, char *host, char *port)
/*
* Any change in the parameters read above makes us discard the password.
* We also discard it if we're to use a conninfo rather than the
- * positional syntax. Note that currently, PQhost() can return NULL for a
- * default Unix-socket connection, so we have to allow NULL for host.
+ * positional syntax.
*/
if (has_connection_string)
keep_password = false;
else
keep_password =
(user && PQuser(o_conn) && strcmp(user, PQuser(o_conn)) == 0) &&
- ((host && PQhost(o_conn) && strcmp(host, PQhost(o_conn)) == 0) ||
- (host == NULL && PQhost(o_conn) == NULL)) &&
+ (host && PQhost(o_conn) && strcmp(host, PQhost(o_conn)) == 0) &&
(port && PQport(o_conn) && strcmp(port, PQport(o_conn)) == 0);
/*
@@ -1890,8 +1886,6 @@ do_connect(char *dbname, char *user, char *host, char *port)
{
char *host = PQhost(pset.db);
- if (host == NULL)
- host = DEFAULT_PGSOCKET_DIR;
/* If the host is an absolute path, the connection is via socket */
if (is_absolute_path(host))
printf(_("You are now connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n"),
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 9c51166b40a..4a1a0272b6b 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -5353,7 +5353,10 @@ PQhost(const PGconn *conn)
else
{
#ifdef HAVE_UNIX_SOCKETS
- return conn->pgunixsocket;
+ if (conn->pgunixsocket != NULL && conn->pgunixsocket[0] != '\0')
+ return conn->pgunixsocket;
+ else
+ return DEFAULT_PGSOCKET_DIR;
#else
return DefaultHost;
#endif
diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h
index 4b69c1216db..98ea6b19477 100644
--- a/src/interfaces/libpq/libpq-int.h
+++ b/src/interfaces/libpq/libpq-int.h
@@ -302,10 +302,9 @@ struct pg_conn
char *pghostaddr; /* the numeric IP address of the machine on
* which the server is running. Takes
* precedence over above. */
- char *pgport; /* the server's communication port */
- char *pgunixsocket; /* the Unix-domain socket that the server is
- * listening on; if NULL, uses a default
- * constructed from pgport */
+ char *pgport; /* the server's communication port number */
+ char *pgunixsocket; /* the directory of the server's Unix-domain
+ * socket; if NULL, use DEFAULT_PGSOCKET_DIR */
char *pgtty; /* tty on which the backend messages is
* displayed (OBSOLETE, NOT USED) */
char *connect_timeout; /* connection timeout (numeric string) */