summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.bin/sockstat/sockstat.13
-rw-r--r--usr.bin/sockstat/sockstat.pl13
2 files changed, 10 insertions, 6 deletions
diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1
index 0985909..a55909c 100644
--- a/usr.bin/sockstat/sockstat.1
+++ b/usr.bin/sockstat/sockstat.1
@@ -60,7 +60,8 @@ The address the foreign end of the socket is bound to (see
.Sh SEE ALSO
.Xr fstat 1 ,
.Xr netstat 1 ,
-.Xr inet 4 .
+.Xr inet 4 ,
+.Xr inet6 4 .
.Sh HISTORY
The
.Nm
diff --git a/usr.bin/sockstat/sockstat.pl b/usr.bin/sockstat/sockstat.pl
index 3c25188..c20f542 100644
--- a/usr.bin/sockstat/sockstat.pl
+++ b/usr.bin/sockstat/sockstat.pl
@@ -29,7 +29,7 @@
# $FreeBSD$
#
-my (%myaddr, %hisaddr);
+my (%proto, %myaddr, %hisaddr);
my ($user, $cmd, $pid, $fd, $inet, $type, $proto, $sock, $laddr, $faddr);
print <<EOH;
@@ -40,11 +40,13 @@ format STDOUT =
$user, $cmd, $pid, $fd, $proto,$laddr, $faddr
.
-open NETSTAT, "netstat -Aan -finet | tail +3 |" or die "'netstat' failed: $!";
+open NETSTAT, "netstat -Aan |" or die "'netstat' failed: $!";
+<NETSTAT>; <NETSTAT>;
while (<NETSTAT>) {
my ($sock, $proto, $recvq, $sendq, $laddr, $faddr, $state) = split;
- ($myaddr{$sock}, $hisaddr{$sock}) = ($laddr, $faddr);
+ ($proto{$sock}, $myaddr{$sock}, $hisaddr{$sock}) =
+ ($proto, $laddr, $faddr);
}
close NETSTAT;
@@ -54,8 +56,9 @@ open FSTAT, "fstat |" or die "'fstat' failed: $!\n";
while (<FSTAT>) {
($user, $cmd, $pid, $fd, $inet, $type, $proto, $sock) = split;
chop $fd;
- next unless ($inet eq "internet");
- ($laddr, $faddr) = ($myaddr{$sock}, $hisaddr{$sock});
+ next unless ($inet =~ m/^internet6?$/);
+ ($proto, $laddr, $faddr) =
+ ($proto{$sock}, $myaddr{$sock}, $hisaddr{$sock});
write STDOUT;
}
OpenPOWER on IntegriCloud