From a5e45820d7b8ba529146d2ec9a015da576962d8d Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sat, 4 Dec 2010 11:44:59 +0100 Subject: [PATCH 1/1] fix overwrite of variables on multiple responses --- README | 10 ++++++++++ printer-callbacks.pl | 5 +++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..9bd12d9 --- /dev/null +++ b/README @@ -0,0 +1,10 @@ +SNMP JSON - pull data from SNMP into JSON + +My experiments with Net::SNMP and pulling data from +devices (printers mostly) and converting them to JSON +for easy web interfaces of analysis. + + +show all snmp values available in printer: + + snmpwalk -c public -v 1 10.60.3.15 diff --git a/printer-callbacks.pl b/printer-callbacks.pl index 38aa41b..1b722a4 100755 --- a/printer-callbacks.pl +++ b/printer-callbacks.pl @@ -42,7 +42,7 @@ my %vars = qw[ info iso.3.6.1.2.1.1.1.0 hostname iso.3.6.1.2.1.43.5.1.1.16.1 serial iso.3.6.1.2.1.43.5.1.1.17.1 -pages iso.3.6.1.2.1.43.10.2.1.4.1 +pages iso.3.6.1.2.1.43.10.2.1.4.1.1 @message iso.3.6.1.2.1.43.18.1.1.8 @consumable.name iso.3.6.1.2.1.43.11.1.1.6.1 @consumable.max iso.3.6.1.2.1.43.11.1.1.8.1 @@ -70,7 +70,8 @@ sub columns_cb { warn "# $ip var_bind_list ", dump( $session->var_bind_list ); my $results = $session->var_bind_list; - $response->{$ip} = { ip => $ip, utime => time() }; + $response->{$ip}->{ip} ||= $ip; + $response->{$ip}->{utime} ||= time(); # oid_lex_sort would be wonderfull to use here, but it doesn't work foreach my $r_oid ( sort { my ($af,$bf) = ($a,$b); -- 2.20.1