| #!/bin/sh -f |
| |
| PLACE=".1.3.6.1.4.1.8072.2.255" # NET-SNMP-PASS-MIB::netSnmpPassExamples |
| REQ="$2" # Requested OID |
| |
| # |
| # Process SET requests by simply logging the assigned value |
| # Note that such "assignments" are not persistent, |
| # nor is the syntax or requested value validated |
| # |
| if [ "$1" = "-s" ]; then |
| echo $* >> /tmp/passtest.log |
| exit 0 |
| fi |
| |
| # |
| # GETNEXT requests - determine next valid instance |
| # |
| if [ "$1" = "-n" ]; then |
| case "$REQ" in |
| $PLACE| \ |
| $PLACE.0| \ |
| $PLACE.0.*| \ |
| $PLACE.1) RET=$PLACE.1.0 ;; # netSnmpPassString.0 |
| |
| $PLACE.1.*| \ |
| $PLACE.2| \ |
| $PLACE.2.0| \ |
| $PLACE.2.0.*| \ |
| $PLACE.2.1| \ |
| $PLACE.2.1.0| \ |
| $PLACE.2.1.0.*| \ |
| $PLACE.2.1.1| \ |
| $PLACE.2.1.1.*| \ |
| $PLACE.2.1.2| \ |
| $PLACE.2.1.2.0) RET=$PLACE.2.1.2.1 ;; # netSnmpPassInteger.1 |
| |
| $PLACE.2.1.2.*| \ |
| $PLACE.2.1.3| \ |
| $PLACE.2.1.3.0) RET=$PLACE.2.1.3.1 ;; # netSnmpPassOID.1 |
| |
| $PLACE.2.*| \ |
| $PLACE.3) RET=$PLACE.3.0 ;; # netSnmpPassTimeTicks.0 |
| $PLACE.3.*| \ |
| $PLACE.4) RET=$PLACE.4.0 ;; # netSnmpPassIpAddress.0 |
| $PLACE.4.*| \ |
| $PLACE.5) RET=$PLACE.5.0 ;; # netSnmpPassCounter.0 |
| $PLACE.5.*| \ |
| $PLACE.6) RET=$PLACE.6.0 ;; # netSnmpPassGauge.0 |
| |
| *) exit 0 ;; |
| esac |
| else |
| # |
| # GET requests - check for valid instance |
| # |
| case "$REQ" in |
| $PLACE.1.0| \ |
| $PLACE.2.1.2.1| \ |
| $PLACE.2.1.3.1| \ |
| $PLACE.3.0| \ |
| $PLACE.4.0| \ |
| $PLACE.5.0| \ |
| $PLACE.6.0) RET=$REQ ;; |
| *) exit 0 ;; |
| esac |
| fi |
| |
| # |
| # "Process" GET* requests - return hard-coded value |
| # |
| echo "$RET" |
| case "$RET" in |
| $PLACE.1.0) echo "string"; echo "Life, the Universe, and Everything"; exit 0 ;; |
| $PLACE.2.1.2.1) echo "integer"; echo "42"; exit 0 ;; |
| $PLACE.2.1.3.1) echo "objectid"; echo "$PLACE.99"; exit 0 ;; |
| $PLACE.3.0) echo "timeticks"; echo "363136200"; exit 0 ;; |
| $PLACE.4.0) echo "ipaddress"; echo "127.0.0.1"; exit 0 ;; |
| $PLACE.5.0) echo "counter"; echo "42"; exit 0 ;; |
| $PLACE.6.0) echo "gauge"; echo "42"; exit 0 ;; |
| *) echo "string"; echo "ack... $RET $REQ"; exit 0 ;; # Should not happen |
| esac |