1#!/bin/sh -f
2
3PLACE=".1.3.6.1.4.1.8072.2.255"  # NET-SNMP-PASS-MIB::netSnmpPassExamples
4REQ="$2"                         # Requested OID
5
6#
7#  Process SET requests by simply logging the assigned value
8#      Note that such "assignments" are not persistent,
9#      nor is the syntax or requested value validated
10#
11if [ "$1" = "-s" ]; then
12  echo $* >> /tmp/passtest.log
13  exit 0
14fi
15
16#
17#  GETNEXT requests - determine next valid instance
18#
19if [ "$1" = "-n" ]; then
20  case "$REQ" in
21    $PLACE|		\
22    $PLACE.0|		\
23    $PLACE.0.*|		\
24    $PLACE.1)       RET=$PLACE.1.0 ;;     # netSnmpPassString.0
25
26    $PLACE.1.*|		\
27    $PLACE.2|		\
28    $PLACE.2.0|		\
29    $PLACE.2.0.*|	\
30    $PLACE.2.1|		\
31    $PLACE.2.1.0|	\
32    $PLACE.2.1.0.*|	\
33    $PLACE.2.1.1|	\
34    $PLACE.2.1.1.*|	\
35    $PLACE.2.1.2|	\
36    $PLACE.2.1.2.0) RET=$PLACE.2.1.2.1 ;; # netSnmpPassInteger.1
37
38    $PLACE.2.1.2.*|	\
39    $PLACE.2.1.3|	\
40    $PLACE.2.1.3.0) RET=$PLACE.2.1.3.1 ;; # netSnmpPassOID.1
41
42    $PLACE.2.*|		\
43    $PLACE.3)       RET=$PLACE.3.0 ;;     # netSnmpPassTimeTicks.0
44    $PLACE.3.*|		\
45    $PLACE.4)       RET=$PLACE.4.0 ;;     # netSnmpPassIpAddress.0
46    $PLACE.4.*|		\
47    $PLACE.5)       RET=$PLACE.5.0 ;;     # netSnmpPassCounter.0
48    $PLACE.5.*|		\
49    $PLACE.6)       RET=$PLACE.6.0 ;;     # netSnmpPassGauge.0
50
51    *)         	    exit 0 ;;
52  esac
53else
54#
55#  GET requests - check for valid instance
56#
57  case "$REQ" in
58    $PLACE.1.0|		\
59    $PLACE.2.1.2.1|	\
60    $PLACE.2.1.3.1|	\
61    $PLACE.3.0|		\
62    $PLACE.4.0|		\
63    $PLACE.5.0|		\
64    $PLACE.6.0)     RET=$REQ ;;
65    *)         	    exit 0 ;;
66  esac
67fi
68
69#
70#  "Process" GET* requests - return hard-coded value
71#
72echo "$RET"
73case "$RET" in
74  $PLACE.1.0)     echo "string";    echo "Life, the Universe, and Everything"; exit 0 ;;
75  $PLACE.2.1.2.1) echo "integer";   echo "42";                                 exit 0 ;;
76  $PLACE.2.1.3.1) echo "objectid";  echo "$PLACE.99";                          exit 0 ;;
77  $PLACE.3.0)     echo "timeticks"; echo "363136200";                          exit 0 ;;
78  $PLACE.4.0)     echo "ipaddress"; echo "127.0.0.1";                          exit 0 ;;
79  $PLACE.5.0)     echo "counter";   echo "42";                                 exit 0 ;;
80  $PLACE.6.0)     echo "gauge";     echo "42";                                 exit 0 ;;
81  *)              echo "string";    echo "ack... $RET $REQ";                   exit 0 ;;  # Should not happen
82esac
83