PID_F=$RUN_D/snmpd.pid
RUN_C=$RUN_D/snmpd.conf
+snmpd_agent_add() {
+ local cfg="$1"
+
+ config_get agentaddress "$cfg" agentaddress
+ [ -n "$agentaddress" ] || return 0
+ echo "agentaddress $agentaddress" >> $RUN_C
+}
+snmpd_system_add() {
+ local cfg="$1"
+ config_get syslocation "$cfg" sysLocation
+ [ -n "$syslocation" ] && echo "sysLocation $syslocation" >> $RUN_C
+ config_get syscontact "$cfg" sysContact
+ [ -n "$syscontact" ] && echo "sysContact $syscontact" >> $RUN_C
+ config_get sysname "$cfg" sysName
+ [ -n "$sysname" ] && echo "sysName $sysname" >> $RUN_C
+ config_get sysservice "$cfg" sysService
+ [ -n "$sysservice" ] && echo "sysService $sysservice" >> $RUN_C
+ config_get sysdescr "$cfg" sysDescr
+ [ -n "$sysdescr" ] && echo "sysDescr $sysdescr" >> $RUN_C
+ config_get sysobjectid "$cfg" sysObjectID
+ [ -n "$sysobjectid" ] && echo "sysObjectID $sysobjectid" >> $RUN_C
+}
snmpd_com2sec_add() {
local cfg="$1"
config_get secname "$cfg" secname
snmpd_pass_add() {
local cfg="$1"
local pass='pass'
-
+
config_get miboid "$cfg" miboid
[ -n "$miboid" ] || return 0
config_get prog "$cfg" prog
priority=${priority:+-p $priority}
echo "$pass $priority $miboid $prog" >> $RUN_C
}
+snmpd_exec_add() {
+ local cfg="$1"
+
+ config_get execname "$cfg" execname
+ [ -n "$execname" ] || return 0
+ config_get prog "$cfg" prog
+ [ -n "$prog" ] || return 0
+ config_get args "$cfg" args
+ config_get miboid "$cfg" miboid
+ echo "exec $miboid $execname $prog $args" >> $RUN_C
+}
start() {
[ -d $LIB_D ] || mkdir -p $LIB_D
[ -d $LOG_D ] || mkdir -p $LOG_D
[ -d $RUN_D ] || mkdir -p $RUN_D
[ -f $RUN_C ] && rm -f $RUN_C
-
+
config_load snmpd
-
+
+ config_foreach snmpd_agent_add agent
+ config_foreach snmpd_system_add system
config_foreach snmpd_com2sec_add com2sec
config_foreach snmpd_group_add group
config_foreach snmpd_view_add view
config_foreach snmpd_access_add access
config_foreach snmpd_pass_add pass
+ config_foreach snmpd_exec_add exec
[ -f $DEFAULT ] && . $DEFAULT
$DEBUG /usr/sbin/snmpd $OPTIONS