Current Path : /usr/src/contrib/wpa/hostapd/logwatch/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/src/contrib/wpa/hostapd/logwatch/hostapd |
#!/usr/bin/perl -w # # Logwatch script for hostapd # # Copyright 2005 Henrik Brix Andersen <brix@gentoo.org> # Distributed under the terms of the GNU General Public License v2 # Alternatively, this file may be distributed under the terms of the BSD License use strict; my $debug = $ENV{'LOGWATCH_DEBUG'} || 0; my $detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0; my $debugcounter = 1; my %hostapd; my @unmatched; if ($debug >= 5) { print STDERR "\n\nDEBUG: Inside HOSTAPD Filter\n\n"; } while (defined(my $line = <STDIN>)) { if ($debug >= 5) { print STDERR "DEBUG($debugcounter): $line"; $debugcounter++; } chomp($line); if (my ($iface,$mac,$layer,$details) = ($line =~ /(.*?): STA (.*?) (.*?): (.*?)$/i)) { unless ($detail == 10) { # collapse association events $details =~ s/^(associated) .*$/$1/i; } $hostapd{$iface}->{$mac}->{$layer}->{$details}++; } else { push @unmatched, "$line\n"; } } if (keys %hostapd) { foreach my $iface (sort keys %hostapd) { print "Interface $iface:\n"; foreach my $mac (sort keys %{$hostapd{$iface}}) { print " Client MAC Address $mac:\n"; foreach my $layer (sort keys %{$hostapd{$iface}->{$mac}}) { print " $layer:\n"; foreach my $details (sort keys %{$hostapd{$iface}->{$mac}->{$layer}}) { print " $details"; my $count = $hostapd{$iface}->{$mac}->{$layer}->{$details}; if ($count > 1) { print ": " . $count . " Times"; } print "\n"; } } } } } if ($#unmatched >= 0) { print "\n**Unmatched Entries**\n"; print @unmatched; } exit(0);