+ if ((!defined($vars->{$var}->{'proto'})) ||
+ ($vars->{$var}->{'proto'} eq '') ||
+ ($vars->{$var}->{'proto'} eq 'snmp')) {
+ $result = fetch_snmp($host->{'address'}, $host->{'community'}, $vars->{$var}->{'oid'});
+ } elsif ($vars->{$var}->{'proto'} eq 'tcp') {
+ $result = fetch_tcp($host->{'address'}, $vars->{$var}->{'port'});
+ }
+
+ next unless (defined $result);
+
+ $vars->{$var}->{'value'} = $result;
+ if (defined($vars->{$var}->{'factor'})) {
+ $vars->{$var}->{'value'} *= $vars->{$var}->{'factor'};
+ }
+ }
+
+ foreach my $var (@{$host->{'fields'}}) {
+ if (!(defined($vars->{$var}->{'value'}))) {
+ $vars->{$var}->{'value'} = 'U';
+ }
+ RRDs::update("${rrdfile}.${var}", "N:" . $vars->{$var}->{'value'});
+ }