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>
diff --git a/networking/netstat.c b/networking/netstat.c
index 33281e3..f6bcd44 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -397,8 +397,11 @@
/* 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);