netstat: produce numeric-ip output for non-resolved names

If we don't ask for numerical output, and the symbolic look-up failed
we used to get "(null)", but the numeric output would be better.

function                                             old     new   delta
ip_port_str                                          109     121     +12

Signed-off-by: Mark Marshall <mark.marshall@omicronenergy.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Mark Marshall 2018-03-19 10:45:40 +01:00 committed by Denys Vlasenko
parent b5820d9fd8
commit 98592db323

View File

@ -397,8 +397,11 @@ static char *ip_port_str(struct sockaddr *addr, int port, const char *proto, int
/* Code which used "*" for INADDR_ANY is removed: it's ambiguous
* in IPv6, while "0.0.0.0" is not. */
host = numeric ? xmalloc_sockaddr2dotted_noport(addr)
: xmalloc_sockaddr2host_noport(addr);
host = NULL;
if (!numeric)
host = xmalloc_sockaddr2host_noport(addr);
if (!host)
host = xmalloc_sockaddr2dotted_noport(addr);
host_port = xasprintf("%s:%s", host, get_sname(htons(port), proto, numeric));
free(host);