pgsql: Give a better error message on invalid hostaddr option.

Started by Heikki Linnakangasover 8 years ago4 messages
#1Heikki Linnakangas
heikki.linnakangas@iki.fi

Give a better error message on invalid hostaddr option.

If you accidentally pass a host name in the hostaddr option, e.g.
hostaddr=localhost, you get an error like:

psql: could not translate host name "localhost" to address: Name or service not known

That's a bit confusing, because it implies that we tried to look up
"localhost" in DNS, but it failed. To make it more clear that we tried to
parse "localhost" as a numeric network address, change the message to:

psql: could not parse network address "localhost": Name or service not known

Discussion: /messages/by-id/10badbc6-4d5a-a769-623a-f7ada43e14dd@iki.fi

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/76b11e8a43eca4612dfccfe7f3ebd293fb8a46ec

Modified Files
--------------
src/interfaces/libpq/fe-connect.c | 41 +++++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 15 deletions(-)

--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

#2Robert Haas
robertmhaas@gmail.com
In reply to: Heikki Linnakangas (#1)
1 attachment(s)
Re: [COMMITTERS] pgsql: Give a better error message on invalid hostaddr option.

On Fri, Jun 9, 2017 at 6:06 AM, Heikki Linnakangas
<heikki.linnakangas@iki.fi> wrote:

Give a better error message on invalid hostaddr option.

If you accidentally pass a host name in the hostaddr option, e.g.
hostaddr=localhost, you get an error like:

psql: could not translate host name "localhost" to address: Name or service not known

That's a bit confusing, because it implies that we tried to look up
"localhost" in DNS, but it failed. To make it more clear that we tried to
parse "localhost" as a numeric network address, change the message to:

psql: could not parse network address "localhost": Name or service not known

This commit doesn't seem to deliver the behavior described in the
commit message. Instead, I get:

[rhaas pgsql]$ psql 'hostaddr=localhost'
psql: could not parse network address "(null)": nodename nor servname
provided, or not known

Proposed patch attached.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Attachments:

fix-could-not-parse-messsage-v1.patchapplication/octet-stream; name=fix-could-not-parse-messsage-v1.patchDownload
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index a7e969d7c1..bd7dac120d 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -1751,7 +1751,7 @@ connectDBStart(PGconn *conn)
 				if (ret || !ch->addrlist)
 					appendPQExpBuffer(&conn->errorMessage,
 									  libpq_gettext("could not parse network address \"%s\": %s\n"),
-									  ch->host, gai_strerror(ret));
+									  ch->hostaddr, gai_strerror(ret));
 				break;
 
 			case CHT_UNIX_SOCKET:
#3Heikki Linnakangas
hlinnaka@iki.fi
In reply to: Robert Haas (#2)
Re: [COMMITTERS] pgsql: Give a better error message on invalid hostaddr option.

On 19/07/18 17:07, Robert Haas wrote:

On Fri, Jun 9, 2017 at 6:06 AM, Heikki Linnakangas
<heikki.linnakangas@iki.fi> wrote:

Give a better error message on invalid hostaddr option.

If you accidentally pass a host name in the hostaddr option, e.g.
hostaddr=localhost, you get an error like:

psql: could not translate host name "localhost" to address: Name or service not known

That's a bit confusing, because it implies that we tried to look up
"localhost" in DNS, but it failed. To make it more clear that we tried to
parse "localhost" as a numeric network address, change the message to:

psql: could not parse network address "localhost": Name or service not known

This commit doesn't seem to deliver the behavior described in the
commit message. Instead, I get:

[rhaas pgsql]$ psql 'hostaddr=localhost'
psql: could not parse network address "(null)": nodename nor servname
provided, or not known

Proposed patch attached.

Seems that I broke this shortly afterwards, by commit 7b02ba62e9.
Pushed, thanks!

- Heikki

#4Robert Haas
robertmhaas@gmail.com
In reply to: Heikki Linnakangas (#3)
Re: [COMMITTERS] pgsql: Give a better error message on invalid hostaddr option.

On Thu, Jul 19, 2018 at 1:28 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

Seems that I broke this shortly afterwards, by commit 7b02ba62e9. Pushed,
thanks!

Oh, OK. Thanks!

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company