|
Packit |
fcad23 |
#!/bin/sh
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
. ../support/simple_eval_tools.sh
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
HEADER 'snmptrapd embedded perl support (NetSNMP::TrapReceiver)'
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
SKIPIF NETSNMP_DISABLE_SNMPV2C
|
|
Packit |
fcad23 |
SKIPIFNOT NETSNMP_EMBEDDED_PERL
|
|
Packit |
fcad23 |
SKIPIFNOT HAVE_SIGHUP
|
|
Packit |
fcad23 |
SKIPIFNOT NETSNMP_SECMOD_USM
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
# Begin test
|
|
Packit |
fcad23 |
#
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
snmp_version=v2c
|
|
Packit |
fcad23 |
TESTCOMMUNITY=testcommunity
|
|
Packit |
fcad23 |
TESTOID=.1.3.6.1.6.3.1.1.5.1
|
|
Packit |
fcad23 |
TESTOID2=.1.3.6.1.6.3.1.1.5.2
|
|
Packit |
fcad23 |
VAROID=.1.3.6.1.2.1.1.4.0
|
|
Packit |
fcad23 |
EMBPERL_LOGFILE=${SNMP_TMPDIR}/embperl.log
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
# make sure that we can fulfill all library dependencies
|
|
Packit |
fcad23 |
_ld_lib_path="${SNMP_UPDIR}/snmplib/.libs:${SNMP_UPDIR}/agent/.libs:${SNMP_UPDIR}/agent/helpers/.libs"
|
|
Packit |
fcad23 |
if [ x$OSTYPE = xcygwin ]; then
|
|
Packit |
fcad23 |
PATH="${_ld_lib_path}:$PATH"
|
|
Packit |
fcad23 |
fi
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
echo "use blib qw(${SNMP_UPDIR}/perl);" > ${SNMP_TMPDIR}/snmp_perl_trapd.pl
|
|
Packit |
fcad23 |
echo "use NetSNMP::TrapReceiver;" >> ${SNMP_TMPDIR}/snmp_perl_trapd.pl
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
CONFIGTRAPD authcommunity execute $TESTCOMMUNITY
|
|
Packit |
fcad23 |
CONFIGTRAPD perlInitFile ${SNMP_TMPDIR}/snmp_perl_trapd.pl
|
|
Packit |
fcad23 |
CONFIGTRAPD 'perl sub my_receiver { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_by_embperl\\n"; close LOG };'
|
|
Packit |
fcad23 |
CONFIGTRAPD 'perl sub my_receiver2 { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_again_by_embperl\\n"; close LOG };'
|
|
Packit |
fcad23 |
CONFIGTRAPD 'perl NetSNMP::TrapReceiver::register("'$TESTOID'", \&my_receiver) || warn "register_perl_handler_failed";'
|
|
Packit |
fcad23 |
CONFIGTRAPD 'perl NetSNMP::TrapReceiver::register("'$TESTOID2'", \&my_receiver2) || warn "register_second_perl_handler_failed";'
|
|
Packit |
fcad23 |
CONFIGTRAPD 'perl print STDERR "registered_perl_handler_ok\\n";'
|
|
Packit |
fcad23 |
CONFIGTRAPD agentxsocket /dev/null
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
STARTTRAPD
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
## 1) trigger embedded perl notification handler
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID $VAROID s handled_trap_$snmp_version"
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
## 2) persistency: reconfigure (SIGHUP), re-trigger
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
HUPTRAPD
|
|
Packit |
fcad23 |
CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID2 $VAROID s handled_trap2_$snmp_version"
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
## stop
|
|
Packit |
fcad23 |
STOPTRAPD
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
CHECKORDIE "handled_by_embperl" $EMBPERL_LOGFILE
|
|
Packit |
fcad23 |
CHECKORDIE "handled_again_by_embperl" $EMBPERL_LOGFILE
|
|
Packit |
fcad23 |
|
|
Packit |
fcad23 |
FINISHED
|