Date: Thu, 8 Oct 2009 21:42:54 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r197875 - projects/capabilities8/usr.bin/netstat Message-ID: <200910082142.n98LgsaG034162@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rwatson Date: Thu Oct 8 21:42:53 2009 New Revision: 197875 URL: http://svn.freebsd.org/changeset/base/197875 Log: Manually merge r197777 from head to capabilities8: netstat(1) support for UNIX SOCK_SEQPACKET sockets -- changes were required only for the kvm case, as we supported SOCK_SEQPACKET via sysctl already. Sponsored by: Google Modified: projects/capabilities8/usr.bin/netstat/main.c projects/capabilities8/usr.bin/netstat/netstat.h projects/capabilities8/usr.bin/netstat/unix.c Modified: projects/capabilities8/usr.bin/netstat/main.c ============================================================================== --- projects/capabilities8/usr.bin/netstat/main.c Thu Oct 8 21:37:40 2009 (r197874) +++ projects/capabilities8/usr.bin/netstat/main.c Thu Oct 8 21:42:53 2009 (r197875) @@ -184,6 +184,8 @@ static struct nlist nl[] = { { .n_name = "_sctpstat" }, #define N_MFCTABLESIZE 54 { .n_name = "_mfctablesize" }, +#define N_UNP_SPHEAD 55 + { .n_name = "unp_sphead" }, { .n_name = NULL }, }; @@ -597,7 +599,8 @@ main(int argc, char *argv[]) #endif /* NETGRAPH */ if ((af == AF_UNIX || af == AF_UNSPEC) && !sflag) unixpr(nl[N_UNP_COUNT].n_value, nl[N_UNP_GENCNT].n_value, - nl[N_UNP_DHEAD].n_value, nl[N_UNP_SHEAD].n_value); + nl[N_UNP_DHEAD].n_value, nl[N_UNP_SHEAD].n_value, + nl[N_UNP_SPHEAD].n_value); exit(0); } Modified: projects/capabilities8/usr.bin/netstat/netstat.h ============================================================================== --- projects/capabilities8/usr.bin/netstat/netstat.h Thu Oct 8 21:37:40 2009 (r197874) +++ projects/capabilities8/usr.bin/netstat/netstat.h Thu Oct 8 21:42:53 2009 (r197875) @@ -149,7 +149,7 @@ void ddp_stats(u_long, const char *, int void netgraphprotopr(u_long, const char *, int, int); #endif -void unixpr(u_long, u_long, u_long, u_long); +void unixpr(u_long, u_long, u_long, u_long, u_long); void esis_stats(u_long, const char *, int, int); void clnp_stats(u_long, const char *, int, int); Modified: projects/capabilities8/usr.bin/netstat/unix.c ============================================================================== --- projects/capabilities8/usr.bin/netstat/unix.c Thu Oct 8 21:37:40 2009 (r197874) +++ projects/capabilities8/usr.bin/netstat/unix.c Thu Oct 8 21:42:53 2009 (r197875) @@ -193,21 +193,37 @@ fail: } void -unixpr(u_long count_off, u_long gencnt_off, u_long dhead_off, u_long shead_off) +unixpr(u_long count_off, u_long gencnt_off, u_long dhead_off, u_long shead_off, + u_long sphead_off) { char *buf; int ret, type; struct xsocket *so; struct xunpgen *xug, *oxug; struct xunpcb *xunp; + u_long head_off; for (type = SOCK_STREAM; type <= SOCK_SEQPACKET; type++) { if (live) ret = pcblist_sysctl(type, &buf); - else - ret = pcblist_kvm(count_off, gencnt_off, - type == SOCK_STREAM ? shead_off : - (type == SOCK_DGRAM ? dhead_off : 0), &buf); + else { + head_off = 0; + switch (type) { + case SOCK_STREAM: + head_off = shead_off; + break; + + case SOCK_DGRAM: + head_off = dhead_off; + break; + + case SOCK_SEQPACKET: + head_off = sphead_off; + break; + } + ret = pcblist_kvm(count_off, gencnt_off, head_off, + &buf); + } if (ret == -1) continue; if (ret < 0)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910082142.n98LgsaG034162>