diff options
author | glebius <glebius@FreeBSD.org> | 2010-03-12 15:04:59 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2010-03-12 15:04:59 +0000 |
commit | e93d3296963195868bf04a7a6820ceef4c6a679d (patch) | |
tree | 608f4dd8db5f440fa1f16dda8e93c606342dccf2 /usr.bin/netstat | |
parent | aad46e823b4427474c2bf12ea7446b15d1dc6835 (diff) | |
download | FreeBSD-src-e93d3296963195868bf04a7a6820ceef4c6a679d.zip FreeBSD-src-e93d3296963195868bf04a7a6820ceef4c6a679d.tar.gz |
Now fix functionality of 'netstat -f netgraph' that hasn't worked
starting from netgraph import in 1999.
netstat(8) used pointer to node as node address, oops. That didn't
work, we need the node ID in brackets to successfully address a node.
We can't look into ng_node, due to inability to include netgraph/netgraph.h
in userland code. So let the node make a hint for a userland, storing
the node ID in its private data.
MFC after: 2 weeks
Diffstat (limited to 'usr.bin/netstat')
-rw-r--r-- | usr.bin/netstat/netgraph.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.bin/netstat/netgraph.c b/usr.bin/netstat/netgraph.c index c4dd647..d510414 100644 --- a/usr.bin/netstat/netgraph.c +++ b/usr.bin/netstat/netgraph.c @@ -166,14 +166,14 @@ netgraphprotopr(u_long off, const char *name, int af1 __unused, name, sockb.so_rcv.sb_cc, sockb.so_snd.sb_cc); /* Get ngsock structure */ - if (ngpcb.sockdata == 0) /* unconnected data socket */ + if (ngpcb.sockdata == NULL) /* unconnected data socket */ goto finish; kread((u_long)ngpcb.sockdata, (char *)&info, sizeof(info)); /* Get info on associated node */ - if (info.node == 0 || csock == -1) + if (info.node_id == 0 || csock == -1) goto finish; - snprintf(path, sizeof(path), "[%lx]:", (u_long) info.node); + snprintf(path, sizeof(path), "[%x]:", info.node_id); if (NgSendMsg(csock, path, NGM_GENERIC_COOKIE, NGM_NODEINFO, NULL, 0) < 0) goto finish; |