65 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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);
 | 
