| 1 | 1 | simandl | package HotSaNICmod::OSdep; |
| 2 | | | |
| 3 | | | #use strict; |
| 4 | | | use diagnostics; |
| 5 | | | |
| 6 | | | sub version { |
| 7 | | | ($VERSION = '$Revision: 1.6 $') =~ s/.*(\d+\.\d+).*/$1/; |
| 8 | | | return "default.pm $VERSION"; |
| 9 | | | } |
| 10 | | | |
| 11 | | | sub sample { |
| 12 | | | my %args=@_; |
| 13 | | | |
| 14 | | | $kbytes=0; |
| 15 | | | $crefused=0; |
| 16 | | | $ctimeout=0; |
| 17 | | | $rtimeout=0; |
| 18 | | | $nohost=0; |
| 19 | | | $other=0; |
| 20 | | | $msrefused=0; |
| 21 | | | $active=0; |
| 22 | | | |
| 23 | | | open FILE,"mailq|"; |
| 24 | | | while (<FILE>) { |
| 25 | | | if (/^\w{10,}\*\s/o) { $active++; } |
| 26 | | | elsif (/^\s*\(/o) { |
| 27 | | | if (index($_,"Connection refused") >=0 ) { $crefused++; } |
| 28 | | | elsif (index($_,"Connection timed out") >=0 ) { $ctimeout++; } |
| 29 | | | elsif (index($_,"Host not found") >=0 ) { $nohost++; } |
| 30 | | | elsif (index($_,"read timeout") >=0 ) { $rtimeout++; } |
| 31 | | | elsif (index($_,"server refused mail service") >=0 ) { $msrefused++; } |
| 32 | | | else { $other++; } |
| 33 | | | } |
| 34 | | | elsif (/^--/o) { (undef,$kbytes)=split; } |
| 35 | | | } |
| 36 | | | close FILE; |
| 37 | | | |
| 38 | | | my $req=$crefused+$ctimeout+$rtimeout+$nohost+$other+$msrefused+$active; |
| 39 | | | |
| 40 | | | HotSaNICmod::do_rrd("queue","U",time,$kbytes,$req,$crefused,$ctimeout,$rtimeout,$nohost,$other,$msrefused); |
| 41 | | | |
| 42 | | | } |
| 43 | | | |
| 44 | | | 1; |
| 45 | | | |
| 46 | | | # possible failure messages and their internal assignments |
| 47 | | | # |
| 48 | | | # "Connection refused" => crefused |
| 49 | | | # "Connection timed out" => ctimeout |
| 50 | | | # "Host not found" => nohost |
| 51 | | | # "Host not found, try again" => nohost |
| 52 | | | # "No route to host" => noroute |
| 53 | | | # "server dropped connection" => other |
| 54 | | | # "server refused mail service" => msrefused |
| 55 | | | # |