package HotSaNICmod::OSdep; use RRDs; sub version { ($VERSION = '$Revision: 1.0 $') =~ s/.*(\d+\.\d+).*/$1/; my $platform; foreach (keys(%INC)) { $platform=$_ if $_ =~ /platform/; } return "$platform $VERSION"; } sub sample { my %args=@_; $mtime=(stat("rrd"))[9]; $now=time; utime $now,$now,"rrd"; $IWCONF = $args{IWCONFIG}; $hostap = $args{HOSTAP}; my @IFACES=(); my @IFMACS=(); foreach (keys(%args)) { if (index($_,"IFACE:") >=0 ) { (undef,$device)=split /:/; push @IFACES,$device; } } foreach (keys(%args)) { if (index($_,"MAC,") >=0 ) { (undef,$dev,$mac)=split /,/; push @IFMACS,"$dev,$mac"; } } foreach $device (@IFACES) { my $rate = 0; my $quality = 0; my $signal = 0; my $noise = 0; my $mode = 0; $command = "$IWCONF $device"; open (FILE,"$command|"); while() { $var=$_; if ($var =~ /^.*Rate[=|:]+(.*)M.*/) { $rate = $1; } elsif ($var =~ /^.*Quality[=|:]+(.*)\/.*[=|:](.*)\sdBm.*[=|:](.*)\sdBm.*/) { $quality = $1; $signal = $2; $noise = $3; last; } elsif ($var =~ /^.*Mode[=|:]+(.*) Fre.*/ ) { $mode=$1; } } close(FILE); $rate=$rate*10; if ( $mode eq "Managed" ) { if ( ! -e "rrd/$device.rrd" ) { system("./makerrd","$device","U") } RRDs::update "rrd/$device.rrd",time.":".$rate.":".$quality.":".$signal.":".$noise; if ($ERROR = RRDs::error) { print time," ",$MODNAME,": unable to update `$device.rrd': $ERROR"; } } if ( $mode eq "Master" ) { if ( ! -e "rrd/$device.rrd" ) { system("./makerrd","$device","U") } RRDs::update "rrd/$device.rrd",time.":".$rate.":".$quality.":".$signal.":".$noise; if ($ERROR = RRDs::error) { print time," ",$MODNAME,": unable to update `$device.rrd': $ERROR"; } } if ( $mode eq "Masters" ) { @clients = glob( "/proc/net/hostap/$device/00*" ); $clients = @clients; $clients = $clients*10; $signal=0; $noise=0; @IFMACSNR=(); foreach $ifmac (@IFMACS) { ($ifmaci,$ifmacm)=split(/,/,$ifmac); if ($ifmaci eq $device ) { $iwmsnr=0; if ( -r "/proc/net/hostap/$ifmaci/$ifmacm" ) { open (FILE,"/proc/net/hostap/$ifmaci/$ifmacm"); while() { $var=$_; if ($var =~ /^.*silence=+(.*) dBm.*signal=+(.*) dBm.*rate=.*/) { ($iwmsilence,undef)=split(/ /,$1); ($iwmsignal,undef)=split(/ /,$2); $iwmsnr=$iwmsignal-$iwmsilence; last; } } close(FILE); } push @IFMACSNR,$iwmsnr; } } push @IFMACSNR,0; push @IFMACSNR,0; if ($IFMACSNR[0] eq "") { $IFMACSNR[0]=0; } if ($IFMACSNR[1] eq "") { $IFMACSNR[1]=0; } if ( ! -e "rrd/$device.rrd" ) { system("./makerrd","$device","U") } RRDs::update "rrd/$device.rrd",time.":".$rate.":".$clients.":".$IFMACSNR[0].":".$IFMACSNR[1]; if ($ERROR = RRDs::error) { dupe_control("warn",$ARGS{"MODNAME"},"unable to update `$device.rrd': $ERROR"); } } } } 1; WebSVN - hotsanic - Blame - Rev 36 - /trunk/modules/iwconf/platform/default.pm.jablonka
  jablonka.czprosek.czf

hotsanic

Subversion Repositories:
[/] [trunk/] [modules/] [iwconf/] [platform/] [default.pm.jablonka] - Blame information for rev 36

 

Line No. Rev Author Line

Powered by WebSVN 2.2.1