Revert "Revert "and added files""
[bcm963xx.git] / userapps / opensource / net-snmp / local / pass_persisttest
1 #!/usr/bin/perl
2
3 # Persistant perl script to respond to pass-through smnp requests
4
5 # put the following in your snmpd.conf file to call this script:
6 #
7 # pass_persist .1.3.6.1.4.1.2021.255 /path/to/pass_persisttest
8
9 # Forces a buffer flush after every print
10 $|=1;
11
12 use strict;
13
14 my $counter = 0;
15 my $place = ".1.3.6.1.4.1.2021.255";
16
17 while (<>){
18   if (m!^PING!){
19     print "PONG\n";
20     next;
21   }
22
23   my $cmd = $_;
24   my $req = <>;
25   my $ret;
26   chomp($cmd);
27   chomp($req);
28
29   if ( $cmd eq "getnext" ) {
30     if ($req eq $place) {
31       $ret = "$place.1";
32     } elsif ($req eq "$place.1") {
33       $ret = "$place.2.1";
34     } elsif ($req eq "$place.2.1") {
35       $ret = "$place.2.2";
36     } elsif ($req eq "$place.2.2") {
37       $ret = "$place.3";
38     } elsif ($req eq "$place.3") {
39       $ret = "$place.4";
40     } elsif ($req eq "$place.4") {
41       $ret = "$place.5";
42     } elsif ($req eq "$place.5") {
43       $ret = "$place.6";
44     } else {
45       print "NONE\n";
46       next;
47     }
48   } else {
49     if ($req eq $place) {
50       print "NONE\n";
51       next;
52     } else {
53       $ret = $req;
54     }
55   }
56
57   print "$ret\n";
58
59   if ($ret eq "$place.1") {
60     print "string\nlife the universe and everything\n";
61   } elsif ($ret eq "$place.2.1") {
62     print "integer\n423\n";
63   } elsif ($ret eq "$place.2.2") {
64     print "objectid\n.1.3.6.1.4.42.42.42\n";
65   } elsif ($ret eq "$place.3") {
66     print "timeticks\n363136200\n";
67   } elsif ($ret eq "$place.4") {
68     print "ipaddress\n127.0.0.1\n";
69   } elsif ($ret eq "$place.5") {
70     $counter++;
71     print "counter\n$counter\n";
72   } elsif ($ret eq "$place.6") {
73     print "gauge\n42\n";
74   } else {
75     print  "string\nack... $ret $req\n";
76   }
77 }