mirror of
https://github.com/opnsense/src.git
synced 2026-06-16 20:19:27 -04:00
netstat: reduce use of historical Internet classes
When attempting to characterize bound addresses, netstat was checking
for host 0 on a (historical) net using inet_lnaof(). Such addresses
are not normally bound, as they would not work, with the exception
of the unspecified address, INADDR_ANY. Check for that explicitly.
Similarly, don't check bound addresses for a match to a network name.
(cherry picked from commit bd27c71c45)
This commit is contained in:
parent
e5d4e532a0
commit
2cd55edbb2
1 changed files with 6 additions and 17 deletions
|
|
@ -296,14 +296,14 @@ protopr(u_long off, const char *name, int af1, int proto)
|
|||
(
|
||||
(istcp && tp->t_state == TCPS_LISTEN)
|
||||
|| (af1 == AF_INET &&
|
||||
inet_lnaof(inp->inp_laddr) == INADDR_ANY)
|
||||
inp->inp_laddr.s_addr == INADDR_ANY)
|
||||
#ifdef INET6
|
||||
|| (af1 == AF_INET6 &&
|
||||
IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr))
|
||||
#endif /* INET6 */
|
||||
|| (af1 == AF_UNSPEC &&
|
||||
(((inp->inp_vflag & INP_IPV4) != 0 &&
|
||||
inet_lnaof(inp->inp_laddr) == INADDR_ANY)
|
||||
inp->inp_laddr.s_addr == INADDR_ANY)
|
||||
#ifdef INET6
|
||||
|| ((inp->inp_vflag & INP_IPV6) != 0 &&
|
||||
IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr))
|
||||
|
|
@ -1471,24 +1471,13 @@ inetname(struct in_addr *inp)
|
|||
char *cp;
|
||||
static char line[MAXHOSTNAMELEN];
|
||||
struct hostent *hp;
|
||||
struct netent *np;
|
||||
|
||||
cp = 0;
|
||||
if (!numeric_addr && inp->s_addr != INADDR_ANY) {
|
||||
int net = inet_netof(*inp);
|
||||
int lna = inet_lnaof(*inp);
|
||||
|
||||
if (lna == INADDR_ANY) {
|
||||
np = getnetbyaddr(net, AF_INET);
|
||||
if (np)
|
||||
cp = np->n_name;
|
||||
}
|
||||
if (cp == NULL) {
|
||||
hp = gethostbyaddr((char *)inp, sizeof (*inp), AF_INET);
|
||||
if (hp) {
|
||||
cp = hp->h_name;
|
||||
trimdomain(cp, strlen(cp));
|
||||
}
|
||||
hp = gethostbyaddr((char *)inp, sizeof (*inp), AF_INET);
|
||||
if (hp) {
|
||||
cp = hp->h_name;
|
||||
trimdomain(cp, strlen(cp));
|
||||
}
|
||||
}
|
||||
if (inp->s_addr == INADDR_ANY)
|
||||
|
|
|
|||
Loading…
Reference in a new issue