#! /usr/bin/perl use strict ; use warnings ; package Probe::Server ; use base 'Probe' ; # client_cnt int server clients cnt # clients_ok int server clients ok sub ITEMS { [ { name => 'client_cnt' , kind => 'int' , args => [] } , { name => 'clients_ok' , kind => 'int' , args => [] } ] } ; sub main { my $self = shift ; my $itms = shift ; # items to probe : [ item, ... ] my $clnt = shift ; # main::CLIENT my $SERV = $clnt -> SERVER ; return unless $SERV ; my $cnt = scalar keys %{ $SERV -> clients } ; my $oks = $SERV -> check_reporting ; for my $item ( @$itms ) { my $name = $item -> name ; my $val = ( $name eq 'client_cnt' ? $cnt : ( $name eq 'clients_ok' ? $oks : undef ) ) ; $item -> set_val ( $val ) if defined $val ; } } 1 ;