diff options
-rw-r--r-- | regress/usr.sbin/snmpd/snmpd.sh | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/regress/usr.sbin/snmpd/snmpd.sh b/regress/usr.sbin/snmpd/snmpd.sh index e4d41b489de..cafe2b6bf2c 100644 --- a/regress/usr.sbin/snmpd/snmpd.sh +++ b/regress/usr.sbin/snmpd/snmpd.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# $OpenBSD: snmpd.sh,v 1.11 2019/10/03 11:05:54 martijn Exp $ +# $OpenBSD: snmpd.sh,v 1.12 2020/08/08 11:06:40 martijn Exp $ #/* # * Copyright (c) Rob Pierce <rob@openbsd.org> # * @@ -250,6 +250,9 @@ wait # # # # # CONFIG FOUR # # # # # echo "\nConfiguration: non-default community strings, custom oids\n" +replacement="$(printf '\357\277\275')" +oe="$(printf '\303\266')" +boe="$(printf '\303')" cat > ${OBJDIR}/snmpd.conf <<EOF # This is config template (4) for snmpd regression testing # Restrict daemon to listen on localhost only @@ -262,6 +265,9 @@ read-write community non-default-rw oid 1.3.6.1.4.1.30155.42.1 name myName read-only string "humppa" oid 1.3.6.1.4.1.30155.42.2 name myStatus read-only integer 1 +# No need to place a full index, we just need the object +oid 1.3.6.1.6.3.15.1.2.2.1.3.1 name Reyk read-only string "Reyk Fl${oe}ter" +oid 1.3.6.1.6.3.15.1.2.2.1.3.2 name broken read-only string "br${boe}ken" EOF (cd ${OBJDIR} && nohup snmpd -dvf ./snmpd.conf > snmpd.log 2>&1) & @@ -332,6 +338,38 @@ then FAILED=1 fi +snmp_command="snmp get -Oqv -v2c -c non-default-rw localhost \ + usmUserSecurityName.1.0" +echo ======= $snmp_command +reyk="$(eval LC_ALL=en_US.UTF-8 $snmp_command)" +if [ "$reyk" != "Reyk Fl${oe}ter" ] +then + echo "Printing of UTF-8 string in UTF-8 locale failed" + FAILED=1 +fi +reyk="$(eval LC_ALL=C $snmp_command)" +if [ "$reyk" != "Reyk Fl.ter" ] +then + echo "Printing of UTF-8 string in C locale failed" + FAILED=1 +fi + +snmp_command="snmp get -Oqv -v2c -c non-default-rw localhost \ + usmUserSecurityName.2.0" +echo ======= $snmp_command +broken="$(eval LC_ALL=en_US.UTF-8 $snmp_command)" +if [ "$broken" != "br${replacement}ken" ] +then + echo "Printing of UTF-8 replacement character failed" + FAILED=1 +fi +broken="$(LC_ALL=C eval $snmp_command)" +if [ "$broken" != "br?ken" ] +then + echo "Printing of question mark in C locale failed" + FAILED=1 +fi + kill $(pgrep snmpd) >/dev/null 2>&1 case $FAILED in |