|
Packit Service |
ae04f2 |
#!/bin/sh
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
Packit Service |
ae04f2 |
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
Packit Service |
ae04f2 |
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# See the COPYRIGHT file distributed with this work for additional
|
|
Packit Service |
ae04f2 |
# information regarding copyright ownership.
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Common configuration data for system tests, to be sourced into
|
|
Packit Service |
ae04f2 |
# other shell scripts.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# Find the top of the BIND9 tree.
|
|
Packit Service |
ae04f2 |
TOP=@abs_top_builddir@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# Default algorithm for testing
|
|
Packit Service |
ae04f2 |
DEFAULT_ALGORITHM=RSASHA256
|
|
Packit Service |
ae04f2 |
DEFAULT_ALGORITHM_NUMBER=8
|
|
Packit Service |
ae04f2 |
DEFAULT_BITS=1280
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# Provide TMPDIR variable for tests that need it.
|
|
Packit Service |
ae04f2 |
TMPDIR=${TMPDIR:-/tmp}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# must be different from DEFAULT_ALGORITHM
|
|
Packit Service |
ae04f2 |
ALTERNATIVE_ALGORITHM=RSASHA1
|
|
Packit Service |
ae04f2 |
ALTERNATIVE_ALGORITHM_NUMBER=5
|
|
Packit Service |
ae04f2 |
ALTERNATIVE_BITS=1280
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# This is an algorithm that is used for tests against the
|
|
Packit Service |
ae04f2 |
# "disable-algorithms" configuration option. Must be different from above
|
|
Packit Service |
ae04f2 |
# algorithms.
|
|
Packit Service |
ae04f2 |
DISABLED_ALGORITHM=ECDSAP384SHA384
|
|
Packit Service |
ae04f2 |
DISABLED_ALGORITHM_NUMBER=14
|
|
Packit Service |
ae04f2 |
DISABLED_BITS=384
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
NAMED=$TOP/bin/named/named
|
|
Packit Service |
ae04f2 |
# We must use "named -l" instead of "lwresd" because argv[0] is lost
|
|
Packit Service |
ae04f2 |
# if the program is libtoolized.
|
|
Packit Service |
ae04f2 |
LWRESD="$TOP/bin/named/named -l"
|
|
Packit Service |
ae04f2 |
DIG=$TOP/bin/dig/dig
|
|
Packit Service |
ae04f2 |
DELV=$TOP/bin/delv/delv
|
|
Packit Service |
ae04f2 |
RNDC=$TOP/bin/rndc/rndc
|
|
Packit Service |
ae04f2 |
NSUPDATE=$TOP/bin/nsupdate/nsupdate
|
|
Packit Service |
ae04f2 |
DDNSCONFGEN=$TOP/bin/confgen/ddns-confgen
|
|
Packit Service |
ae04f2 |
TSIGKEYGEN=$TOP/bin/confgen/tsig-keygen
|
|
Packit Service |
ae04f2 |
RNDCCONFGEN=$TOP/bin/confgen/rndc-confgen
|
|
Packit Service |
ae04f2 |
KEYGEN=$TOP/bin/dnssec/dnssec-keygen
|
|
Packit Service |
ae04f2 |
KEYFRLAB=$TOP/bin/dnssec/dnssec-keyfromlabel
|
|
Packit Service |
ae04f2 |
SIGNER=$TOP/bin/dnssec/dnssec-signzone
|
|
Packit Service |
ae04f2 |
REVOKE=$TOP/bin/dnssec/dnssec-revoke
|
|
Packit Service |
ae04f2 |
SETTIME=$TOP/bin/dnssec/dnssec-settime
|
|
Packit Service |
ae04f2 |
DSFROMKEY=$TOP/bin/dnssec/dnssec-dsfromkey
|
|
Packit Service |
ae04f2 |
HOST=$TOP/bin/dig/host
|
|
Packit Service |
ae04f2 |
IMPORTKEY=$TOP/bin/dnssec/dnssec-importkey
|
|
Packit Service |
ae04f2 |
CHECKDS=$TOP/bin/python/dnssec-checkds
|
|
Packit Service |
ae04f2 |
COVERAGE=$TOP/bin/python/dnssec-coverage
|
|
Packit Service |
ae04f2 |
KEYMGR=$TOP/bin/python/dnssec-keymgr
|
|
Packit Service |
ae04f2 |
CHECKZONE=$TOP/bin/check/named-checkzone
|
|
Packit Service |
ae04f2 |
CHECKCONF=$TOP/bin/check/named-checkconf
|
|
Packit Service |
ae04f2 |
PK11GEN="$TOP/bin/pkcs11/pkcs11-keygen -q -s ${SLOT:-0} -p ${HSMPIN:-1234}"
|
|
Packit Service |
ae04f2 |
PK11LIST="$TOP/bin/pkcs11/pkcs11-list -s ${SLOT:-0} -p ${HSMPIN:-1234}"
|
|
Packit Service |
ae04f2 |
PK11DEL="$TOP/bin/pkcs11/pkcs11-destroy -s ${SLOT:-0} -p ${HSMPIN:-1234} -w 0"
|
|
Packit Service |
ae04f2 |
JOURNALPRINT=$TOP/bin/tools/named-journalprint
|
|
Packit Service |
ae04f2 |
VERIFY=$TOP/bin/dnssec/dnssec-verify
|
|
Packit Service |
ae04f2 |
ARPANAME=$TOP/bin/tools/arpaname
|
|
Packit Service |
ae04f2 |
RESOLVE=$TOP/lib/samples/resolve
|
|
Packit Service |
ae04f2 |
RRCHECKER=$TOP/bin/tools/named-rrchecker
|
|
Packit Service |
ae04f2 |
GENRANDOM=$TOP/bin/tools/genrandom
|
|
Packit Service |
ae04f2 |
NSLOOKUP=$TOP/bin/dig/nslookup
|
|
Packit Service |
ae04f2 |
DNSTAPREAD=$TOP/bin/tools/dnstap-read
|
|
Packit Service |
ae04f2 |
MDIG=$TOP/bin/tools/mdig
|
|
Packit Service |
ae04f2 |
NZD2NZF=$TOP/bin/tools/named-nzd2nzf
|
|
Packit Service |
ae04f2 |
FSTRM_CAPTURE=@FSTRM_CAPTURE@
|
|
Packit Service |
ae04f2 |
FEATURETEST=$TOP/bin/tests/system/feature-test
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
RANDFILE=$TOP/bin/tests/system/random.data
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
BIGKEY=$TOP/bin/tests/system/rsabigexponent/bigkey
|
|
Packit Service |
ae04f2 |
GENCHECK=$TOP/bin/tests/system/rndc/gencheck
|
|
Packit Service |
ae04f2 |
KEYCREATE=$TOP/bin/tests/system/tkey/keycreate
|
|
Packit Service |
ae04f2 |
KEYDELETE=$TOP/bin/tests/system/tkey/keydelete
|
|
Packit Service |
ae04f2 |
LWTEST=$TOP/bin/tests/system/lwresd/lwtest
|
|
Packit Service |
ae04f2 |
MAKEJOURNAL=$TOP/bin/tests/makejournal
|
|
Packit Service |
ae04f2 |
PIPEQUERIES=$TOP/bin/tests/system/pipelined/pipequeries
|
|
Packit Service |
ae04f2 |
SAMPLEUPDATE=$TOP/lib/samples/sample-update
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# we don't want a KRB5_CONFIG setting breaking the tests
|
|
Packit Service |
ae04f2 |
KRB5_CONFIG=/dev/null
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# the amount of fake "entropy" to generate with GENRANDOM in
|
|
Packit Service |
ae04f2 |
# system tests
|
|
Packit Service |
ae04f2 |
RANDOMSIZE=4096
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# The "stress" test is not run by default since it creates enough
|
|
Packit Service |
ae04f2 |
# load on the machine to make it unusable to other users.
|
|
Packit Service |
ae04f2 |
# The "dialup", "delzone", and "dupsigs" tests are also not run by
|
|
Packit Service |
ae04f2 |
# default because they take a very long time to complete.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# List of tests hard-coded to use ports 5300 and 9953. For this
|
|
Packit Service |
ae04f2 |
# reason, these must be run sequentially.
|
|
Packit Service |
ae04f2 |
SEQUENTIALDIRS="ecdsa eddsa gost lwresd @PKCS11_TEST@ tkey"
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# List of tests that use ports assigned by caller (other than 5300
|
|
Packit Service |
ae04f2 |
# and 9953). Because separate blocks of ports can be used for teach
|
|
Packit Service |
ae04f2 |
# test, these tests can be run in parallel.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Note: some of the longer-running tests are scheduled first,
|
|
Packit Service |
ae04f2 |
# in order to get more benefit from parallelism.
|
|
Packit Service |
ae04f2 |
PARALLELDIRS="dnssec rpzrecurse \
|
|
Packit Service |
ae04f2 |
acl additional addzone allow-query autosign \
|
|
Packit Service |
ae04f2 |
builtin cacheclean case catz chain \
|
|
Packit Service |
ae04f2 |
checkconf checknames checkzone \
|
|
Packit Service |
ae04f2 |
@CHECKDS@ @COVERAGE@ @KEYMGR@ \
|
|
Packit Service |
ae04f2 |
cookie database digdelv dlv dlz dlzexternal \
|
|
Packit Service |
ae04f2 |
dns64 @DNSTAP@ dscp dsdigest dyndb \
|
|
Packit Service |
ae04f2 |
ednscompliance emptyzones \
|
|
Packit Service |
ae04f2 |
fetchlimit filter-aaaa formerr forward \
|
|
Packit Service |
ae04f2 |
geoip geoip2 glue idna inline integrity ixfr \
|
|
Packit Service |
ae04f2 |
legacy limits logfileconfig \
|
|
Packit Service |
ae04f2 |
masterfile masterformat metadata mkeys \
|
|
Packit Service |
ae04f2 |
names notify nslookup nsupdate nzd2nzf \
|
|
Packit Service |
ae04f2 |
pending pipelined \
|
|
Packit Service |
ae04f2 |
reclimit redirect resolver rndc rootkeysentinel rpz \
|
|
Packit Service |
ae04f2 |
rrchecker rrl rrsetorder rsabigexponent runtime \
|
|
Packit Service |
ae04f2 |
sfcache smartsign sortlist \
|
|
Packit Service |
ae04f2 |
spf staticstub statistics statschannel stub \
|
|
Packit Service |
ae04f2 |
tcp tsig tsiggss \
|
|
Packit Service |
ae04f2 |
unknown upforwd verify views wildcard \
|
|
Packit Service |
ae04f2 |
xfer xferquota zero zonechecks"
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
SUBDIRS="$SEQUENTIALDIRS $PARALLELDIRS"
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# Things that are different on Windows
|
|
Packit Service |
ae04f2 |
KILL=kill
|
|
Packit Service |
ae04f2 |
DIFF=diff
|
|
Packit Service |
ae04f2 |
DOS2UNIX=true
|
|
Packit Service |
ae04f2 |
# There's no trailing period on Windows
|
|
Packit Service |
ae04f2 |
TP=.
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# Use the CONFIG_SHELL detected by configure for tests
|
|
Packit Service |
ae04f2 |
SHELL=@SHELL@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# CURL will be empty if no program was found by configure
|
|
Packit Service |
ae04f2 |
CURL=@CURL@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# XMLLINT will be empty if no program was found by configure
|
|
Packit Service |
ae04f2 |
XMLLINT=@XMLLINT@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# XSLTPROC will be empty if no program was found by configure
|
|
Packit Service |
ae04f2 |
XSLTPROC=@XSLTPROC@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# PERL will be an empty string if no perl interpreter was found.
|
|
Packit Service |
ae04f2 |
PERL=@PERL@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
testsock6() {
|
|
Packit Service |
ae04f2 |
if test -n "$PERL" \
|
|
Packit Service |
ae04f2 |
&& $PERL -e "use IO::Socket::INET6;" 2> /dev/null \
|
|
Packit Service |
ae04f2 |
&& grep "^#define WANT_IPV6 1" "$TOP/config.h" > /dev/null 2>&1
|
|
Packit Service |
ae04f2 |
then
|
|
Packit Service |
ae04f2 |
$PERL "$TOP/bin/tests/system/testsock6.pl" "$@"
|
|
Packit Service |
ae04f2 |
else
|
|
Packit Service |
ae04f2 |
false
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# Windows process management leave empty
|
|
Packit Service |
ae04f2 |
PSSUSPEND=
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
PYTHON=@PYTHON@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Determine if we support various optional features.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
CHECK_DSA=@CHECK_DSA@
|
|
Packit Service |
ae04f2 |
HAVEXMLSTATS=@XMLSTATS@
|
|
Packit Service |
ae04f2 |
HAVEJSONSTATS=@JSONSTATS@
|
|
Packit Service |
ae04f2 |
ZLIB=@ZLIB@
|
|
Packit Service |
ae04f2 |
NZD=@NZD_TOOLS@
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
. ${TOP}/version
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Set up color-coded test output
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
if [ ${SYSTEMTEST_FORCE_COLOR:-0} -eq 1 ] || test -t 1 && type tput > /dev/null 2>&1 && tput setaf 7 > /dev/null 2>&1 ; then
|
|
Packit Service |
ae04f2 |
COLOR_END=`tput setaf 4` # blue
|
|
Packit Service |
ae04f2 |
COLOR_FAIL=`tput setaf 1` # red
|
|
Packit Service |
ae04f2 |
COLOR_INFO=`tput bold` # bold
|
|
Packit Service |
ae04f2 |
COLOR_NONE=`tput sgr0`
|
|
Packit Service |
ae04f2 |
COLOR_PASS=`tput setaf 2` # green
|
|
Packit Service |
ae04f2 |
COLOR_START=`tput setaf 4` # blue
|
|
Packit Service |
ae04f2 |
COLOR_WARN=`tput setaf 3` # yellow
|
|
Packit Service |
ae04f2 |
else
|
|
Packit Service |
ae04f2 |
# set to empty strings so printf succeeds
|
|
Packit Service |
ae04f2 |
COLOR_END=''
|
|
Packit Service |
ae04f2 |
COLOR_FAIL=''
|
|
Packit Service |
ae04f2 |
COLOR_INFO=''
|
|
Packit Service |
ae04f2 |
COLOR_NONE=''
|
|
Packit Service |
ae04f2 |
COLOR_PASS=''
|
|
Packit Service |
ae04f2 |
COLOR_START=''
|
|
Packit Service |
ae04f2 |
COLOR_WARN=''
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
SYSTESTDIR="`basename $PWD`"
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
if type printf > /dev/null 2>&1
|
|
Packit Service |
ae04f2 |
then
|
|
Packit Service |
ae04f2 |
echofail () {
|
|
Packit Service |
ae04f2 |
printf "${COLOR_FAIL}%s${COLOR_NONE}\n" "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echowarn () {
|
|
Packit Service |
ae04f2 |
printf "${COLOR_WARN}%s${COLOR_NONE}\n" "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echopass () {
|
|
Packit Service |
ae04f2 |
printf "${COLOR_PASS}%s${COLOR_NONE}\n" "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echoinfo () {
|
|
Packit Service |
ae04f2 |
printf "${COLOR_INFO}%s${COLOR_NONE}\n" "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echostart () {
|
|
Packit Service |
ae04f2 |
printf "${COLOR_START}%s${COLOR_NONE}\n" "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echoend () {
|
|
Packit Service |
ae04f2 |
printf "${COLOR_END}%s${COLOR_NONE}\n" "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echo_i() {
|
|
Packit Service |
ae04f2 |
printf '%s\n' "$*" | while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "I:$SYSTESTDIR:$__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
echo_ic() {
|
|
Packit Service |
ae04f2 |
printf '%s\n' "$*" | while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "I:$SYSTESTDIR: $__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
echo_d() {
|
|
Packit Service |
ae04f2 |
printf '%s\n' "$*" | while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "D:$SYSTESTDIR:$__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
else
|
|
Packit Service |
ae04f2 |
echofail () {
|
|
Packit Service |
ae04f2 |
echo "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echowarn () {
|
|
Packit Service |
ae04f2 |
echo "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echopass () {
|
|
Packit Service |
ae04f2 |
echo "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echoinfo () {
|
|
Packit Service |
ae04f2 |
echo "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echostart () {
|
|
Packit Service |
ae04f2 |
echo "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
echoend () {
|
|
Packit Service |
ae04f2 |
echo "$*"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
echo_i() {
|
|
Packit Service |
ae04f2 |
echo "$@" | while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "I:$SYSTESTDIR:$__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
echo_ic() {
|
|
Packit Service |
ae04f2 |
echo "$@" | while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "I:$SYSTESTDIR: $__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
echo_d() {
|
|
Packit Service |
ae04f2 |
echo "$@" | while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "D:$SYSTESTDIR:$__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
cat_i() {
|
|
Packit Service |
ae04f2 |
while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "I:$SYSTESTDIR:$__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
cat_d() {
|
|
Packit Service |
ae04f2 |
while read -r __LINE ; do
|
|
Packit Service |
ae04f2 |
echoinfo "D:$SYSTESTDIR:$__LINE"
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
digcomp() {
|
|
Packit Service |
ae04f2 |
output=`$PERL $SYSTEMTESTTOP/digcomp.pl "$@"`
|
|
Packit Service |
ae04f2 |
result=$?
|
|
Packit Service |
ae04f2 |
[ -n "$output" ] && { echo "digcomp failed:"; echo "$output"; } | cat_i
|
|
Packit Service |
ae04f2 |
return $result
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Useful functions in test scripts
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# assert_int_equal: compare two integer variables, $1 and $2
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# If $1 and $2 are equal, return 0; if $1 and $2 are not equal, report
|
|
Packit Service |
ae04f2 |
# the error using the description of the tested variable provided in $3
|
|
Packit Service |
ae04f2 |
# and return 1.
|
|
Packit Service |
ae04f2 |
assert_int_equal() {
|
|
Packit Service |
ae04f2 |
found="$1"
|
|
Packit Service |
ae04f2 |
expected="$2"
|
|
Packit Service |
ae04f2 |
description="$3"
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
if [ "${expected}" -ne "${found}" ]; then
|
|
Packit Service |
ae04f2 |
echo_i "incorrect ${description}: got ${found}, expected ${expected}"
|
|
Packit Service |
ae04f2 |
return 1
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
return 0
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# keyfile_to_keys_section: helper function for keyfile_to_*_keys() which
|
|
Packit Service |
ae04f2 |
# converts keyfile data into a configuration section using the supplied
|
|
Packit Service |
ae04f2 |
# parameters
|
|
Packit Service |
ae04f2 |
keyfile_to_keys_section() {
|
|
Packit Service |
ae04f2 |
section_name=$1
|
|
Packit Service |
ae04f2 |
key_prefix=$2
|
|
Packit Service |
ae04f2 |
shift
|
|
Packit Service |
ae04f2 |
shift
|
|
Packit Service |
ae04f2 |
echo "$section_name {"
|
|
Packit Service |
ae04f2 |
for keyname in $*; do
|
|
Packit Service |
ae04f2 |
awk '!/^; /{
|
|
Packit Service |
ae04f2 |
printf "\t\""$1"\" "
|
|
Packit Service |
ae04f2 |
printf "'"$key_prefix"'"
|
|
Packit Service |
ae04f2 |
printf $4 " " $5 " " $6 " \""
|
|
Packit Service |
ae04f2 |
for (i=7; i<=NF; i++) printf $i
|
|
Packit Service |
ae04f2 |
printf "\";\n"
|
|
Packit Service |
ae04f2 |
}' $keyname.key
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
echo "};"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# keyfile_to_trusted_keys: convert key data contained in the keyfile(s)
|
|
Packit Service |
ae04f2 |
# provided to a "trusted-keys" section suitable for including in a
|
|
Packit Service |
ae04f2 |
# resolver's configuration file
|
|
Packit Service |
ae04f2 |
keyfile_to_trusted_keys() {
|
|
Packit Service |
ae04f2 |
keyfile_to_keys_section "trusted-keys" "" $*
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# keyfile_to_managed_keys: convert key data contained in the keyfile(s)
|
|
Packit Service |
ae04f2 |
# provided to a "managed-keys" section suitable for including in a
|
|
Packit Service |
ae04f2 |
# resolver's configuration file
|
|
Packit Service |
ae04f2 |
keyfile_to_managed_keys() {
|
|
Packit Service |
ae04f2 |
keyfile_to_keys_section "managed-keys" "initial-key " $*
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# keyfile_to_key_id: convert a key file name to a key ID
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# For a given key file name (e.g. "Kexample.+013+06160") provided as $1,
|
|
Packit Service |
ae04f2 |
# print the key ID with leading zeros stripped ("6160" for the
|
|
Packit Service |
ae04f2 |
# aforementioned example).
|
|
Packit Service |
ae04f2 |
keyfile_to_key_id() {
|
|
Packit Service |
ae04f2 |
echo "$1" | sed "s/.*+0\{0,4\}//"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# nextpart*() - functions for reading files incrementally
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# These functions aim to facilitate looking for (or waiting for)
|
|
Packit Service |
ae04f2 |
# messages which may be logged more than once throughout the lifetime of
|
|
Packit Service |
ae04f2 |
# a given named instance by outputting just the part of the file which
|
|
Packit Service |
ae04f2 |
# has been appended since the last time we read it.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Calling some of these functions causes temporary *.prev files to be
|
|
Packit Service |
ae04f2 |
# created that need to be cleaned up manually (usually by a given system
|
|
Packit Service |
ae04f2 |
# test's clean.sh script).
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Note that unlike other nextpart*() functions, nextpartread() is not
|
|
Packit Service |
ae04f2 |
# meant to be directly used in system tests; its sole purpose is to
|
|
Packit Service |
ae04f2 |
# reduce code duplication below.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# A quick usage example:
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# $ echo line1 > named.log
|
|
Packit Service |
ae04f2 |
# $ echo line2 >> named.log
|
|
Packit Service |
ae04f2 |
# $ nextpart named.log
|
|
Packit Service |
ae04f2 |
# line1
|
|
Packit Service |
ae04f2 |
# line2
|
|
Packit Service |
ae04f2 |
# $ echo line3 >> named.log
|
|
Packit Service |
ae04f2 |
# $ nextpart named.log
|
|
Packit Service |
ae04f2 |
# line3
|
|
Packit Service |
ae04f2 |
# $ nextpart named.log
|
|
Packit Service |
ae04f2 |
# $ echo line4 >> named.log
|
|
Packit Service |
ae04f2 |
# $ nextpartpeek named.log
|
|
Packit Service |
ae04f2 |
# line4
|
|
Packit Service |
ae04f2 |
# $ nextpartpeek named.log
|
|
Packit Service |
ae04f2 |
# line4
|
|
Packit Service |
ae04f2 |
# $ nextpartreset named.log
|
|
Packit Service |
ae04f2 |
# $ nextpartpeek named.log
|
|
Packit Service |
ae04f2 |
# line1
|
|
Packit Service |
ae04f2 |
# line2
|
|
Packit Service |
ae04f2 |
# line3
|
|
Packit Service |
ae04f2 |
# line4
|
|
Packit Service |
ae04f2 |
# $ nextpart named.log
|
|
Packit Service |
ae04f2 |
# line1
|
|
Packit Service |
ae04f2 |
# line2
|
|
Packit Service |
ae04f2 |
# line3
|
|
Packit Service |
ae04f2 |
# line4
|
|
Packit Service |
ae04f2 |
# $ nextpart named.log
|
|
Packit Service |
ae04f2 |
# $
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# nextpartreset: reset the marker used by nextpart() and nextpartpeek()
|
|
Packit Service |
ae04f2 |
# so that it points to the start of the given file
|
|
Packit Service |
ae04f2 |
nextpartreset() {
|
|
Packit Service |
ae04f2 |
echo "0" > $1.prev
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# nextpartread: read everything that's been appended to a file since the
|
|
Packit Service |
ae04f2 |
# last time nextpart() was called and print it to stdout, print the
|
|
Packit Service |
ae04f2 |
# total number of lines read from that file so far to stderr
|
|
Packit Service |
ae04f2 |
nextpartread() {
|
|
Packit Service |
ae04f2 |
[ -f $1.prev ] || nextpartreset $1
|
|
Packit Service |
ae04f2 |
prev=`cat $1.prev`
|
|
Packit Service |
ae04f2 |
awk "NR > $prev "'{ print }
|
|
Packit Service |
ae04f2 |
END { print NR > "/dev/stderr" }' $1
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# nextpart: read everything that's been appended to a file since the
|
|
Packit Service |
ae04f2 |
# last time nextpart() was called
|
|
Packit Service |
ae04f2 |
nextpart() {
|
|
Packit Service |
ae04f2 |
nextpartread $1 2> $1.prev.tmp
|
|
Packit Service |
ae04f2 |
mv $1.prev.tmp $1.prev
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# nextpartpeek: read everything that's been appended to a file since the
|
|
Packit Service |
ae04f2 |
# last time nextpart() was called
|
|
Packit Service |
ae04f2 |
nextpartpeek() {
|
|
Packit Service |
ae04f2 |
nextpartread $1 2> /dev/null
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# _search_log: look for message $1 in file $2 with nextpart().
|
|
Packit Service |
ae04f2 |
_search_log() (
|
|
Packit Service |
ae04f2 |
msg="$1"
|
|
Packit Service |
ae04f2 |
file="$2"
|
|
Packit Service |
ae04f2 |
nextpart "$file" | grep -F "$msg" > /dev/null
|
|
Packit Service |
ae04f2 |
)
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# _search_log_peek: look for message $1 in file $2 with nextpartpeek().
|
|
Packit Service |
ae04f2 |
_search_log_peek() (
|
|
Packit Service |
ae04f2 |
msg="$1"
|
|
Packit Service |
ae04f2 |
file="$2"
|
|
Packit Service |
ae04f2 |
nextpartpeek "$file" | grep -F "$msg" > /dev/null
|
|
Packit Service |
ae04f2 |
)
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# wait_for_log: wait until message $2 in file $3 appears. Bail out after
|
|
Packit Service |
ae04f2 |
# $1 seconds. This needs to be used in conjunction with a prior call to
|
|
Packit Service |
ae04f2 |
# nextpart() or nextpartreset() on the same file to guarantee the offset is
|
|
Packit Service |
ae04f2 |
# set correctly. Tests using wait_for_log() are responsible for cleaning up
|
|
Packit Service |
ae04f2 |
# the created <file>.prev files.
|
|
Packit Service |
ae04f2 |
wait_for_log() (
|
|
Packit Service |
ae04f2 |
timeout="$1"
|
|
Packit Service |
ae04f2 |
msg="$2"
|
|
Packit Service |
ae04f2 |
file="$3"
|
|
Packit Service |
ae04f2 |
retry_quiet "$timeout" _search_log "$msg" "$file" && return 0
|
|
Packit Service |
ae04f2 |
echo_i "exceeded time limit waiting for '$msg' in $file"
|
|
Packit Service |
ae04f2 |
return 1
|
|
Packit Service |
ae04f2 |
)
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# wait_for_log_peek: similar to wait_for_log() but peeking, so the file offset
|
|
Packit Service |
ae04f2 |
# does not change.
|
|
Packit Service |
ae04f2 |
wait_for_log_peek() (
|
|
Packit Service |
ae04f2 |
timeout="$1"
|
|
Packit Service |
ae04f2 |
msg="$2"
|
|
Packit Service |
ae04f2 |
file="$3"
|
|
Packit Service |
ae04f2 |
retry_quiet "$timeout" _search_log_peek "$msg" "$file" && return 0
|
|
Packit Service |
ae04f2 |
echo_i "exceeded time limit waiting for '$msg' in $file"
|
|
Packit Service |
ae04f2 |
return 1
|
|
Packit Service |
ae04f2 |
)
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# _retry: keep running a command until it succeeds, up to $1 times, with
|
|
Packit Service |
ae04f2 |
# one-second intervals, optionally printing a message upon every attempt
|
|
Packit Service |
ae04f2 |
_retry() {
|
|
Packit Service |
ae04f2 |
__retries="${1}"
|
|
Packit Service |
ae04f2 |
shift
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
while :; do
|
|
Packit Service |
ae04f2 |
if "$@"; then
|
|
Packit Service |
ae04f2 |
return 0
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
__retries=$((__retries-1))
|
|
Packit Service |
ae04f2 |
if [ "${__retries}" -gt 0 ]; then
|
|
Packit Service |
ae04f2 |
if [ "${__retry_quiet}" -ne 1 ]; then
|
|
Packit Service |
ae04f2 |
echo_i "retrying"
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
sleep 1
|
|
Packit Service |
ae04f2 |
else
|
|
Packit Service |
ae04f2 |
return 1
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# retry: call _retry() in verbose mode
|
|
Packit Service |
ae04f2 |
retry() {
|
|
Packit Service |
ae04f2 |
__retry_quiet=0
|
|
Packit Service |
ae04f2 |
_retry "$@"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# retry_quiet: call _retry() in silent mode
|
|
Packit Service |
ae04f2 |
retry_quiet() {
|
|
Packit Service |
ae04f2 |
__retry_quiet=1
|
|
Packit Service |
ae04f2 |
_retry "$@"
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# rndc_dumpdb: call "rndc dumpdb [...]" and wait until it completes
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# The first argument is the name server instance to send the command to, in the
|
|
Packit Service |
ae04f2 |
# form of "nsX" (where "X" is the instance number), e.g. "ns5". The remaining
|
|
Packit Service |
ae04f2 |
# arguments, if any, are appended to the rndc command line after "dumpdb".
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Control channel configuration for the name server instance to send the
|
|
Packit Service |
ae04f2 |
# command to must match the contents of bin/tests/system/common/rndc.conf.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# rndc output is stored in a file called rndc.out.test${n}; the "n" variable is
|
|
Packit Service |
ae04f2 |
# required to be set by the calling tests.sh script.
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Return 0 if the dump completes successfully; return 1 if rndc returns an exit
|
|
Packit Service |
ae04f2 |
# code other than 0 or if the "; Dump complete" string does not appear in the
|
|
Packit Service |
ae04f2 |
# dump within 10 seconds.
|
|
Packit Service |
ae04f2 |
rndc_dumpdb() {
|
|
Packit Service |
ae04f2 |
__ret=0
|
|
Packit Service |
ae04f2 |
__dump_complete=0
|
|
Packit Service |
ae04f2 |
__server="${1}"
|
|
Packit Service |
ae04f2 |
__ip="10.53.0.`echo "${__server}" | tr -c -d "0-9"`"
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
shift
|
|
Packit Service |
ae04f2 |
${RNDC} -c ../common/rndc.conf -p "${CONTROLPORT}" -s "${__ip}" dumpdb "$@" > "rndc.out.test${n}" 2>&1 || __ret=1
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
for _ in 0 1 2 3 4 5 6 7 8 9
|
|
Packit Service |
ae04f2 |
do
|
|
Packit Service |
ae04f2 |
if grep '^; Dump complete$' "${__server}/named_dump.db" > /dev/null; then
|
|
Packit Service |
ae04f2 |
mv "${__server}/named_dump.db" "${__server}/named_dump.db.test${n}"
|
|
Packit Service |
ae04f2 |
__dump_complete=1
|
|
Packit Service |
ae04f2 |
break
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
sleep 1
|
|
Packit Service |
ae04f2 |
done
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
if [ ${__dump_complete} -eq 0 ]; then
|
|
Packit Service |
ae04f2 |
echo_i "timed out waiting for 'rndc dumpdb' to finish"
|
|
Packit Service |
ae04f2 |
__ret=1
|
|
Packit Service |
ae04f2 |
fi
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
return ${__ret}
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
# copy_setports - Copy Configuration File and Replace Ports
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Convenience function to copy a configuration file, replacing the tokens
|
|
Packit Service |
ae04f2 |
# QUERYPORT, CONTROLPORT and EXTRAPORT[1-8] with the values of the equivalent
|
|
Packit Service |
ae04f2 |
# environment variables. (These values are set by "run.sh", which calls the
|
|
Packit Service |
ae04f2 |
# scripts invoking this function.)
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Usage:
|
|
Packit Service |
ae04f2 |
# copy_setports infile outfile
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
copy_setports() {
|
|
Packit Service |
ae04f2 |
sed -e "s/@PORT@/${PORT}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT1@/${EXTRAPORT1}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT2@/${EXTRAPORT2}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT3@/${EXTRAPORT3}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT4@/${EXTRAPORT4}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT5@/${EXTRAPORT5}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT6@/${EXTRAPORT6}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT7@/${EXTRAPORT7}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@EXTRAPORT8@/${EXTRAPORT8}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@CONTROLPORT@/${CONTROLPORT}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@DEFAULT_ALGORITHM@/${DEFAULT_ALGORITHM}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@DEFAULT_ALGORITHM_NUMBER@/${DEFAULT_ALGORITHM_NUMBER}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@DEFAULT_BITS@/${DEFAULT_BITS}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@ALTERNATIVE_ALGORITHM@/${ALTERNATIVE_ALGORITHM}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@ALTERNATIVE_ALGORITHM_NUMBER@/${ALTERNATIVE_ALGORITHM_NUMBER}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@ALTERNATIVE_BITS@/${ALTERNATIVE_BITS}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@DISABLED_ALGORITHM@/${DISABLED_ALGORITHM}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@DISABLED_ALGORITHM_NUMBER@/${DISABLED_ALGORITHM_NUMBER}/g" \
|
|
Packit Service |
ae04f2 |
-e "s/@DISABLED_BITS@/${DISABLED_BITS}/g" \
|
|
Packit Service |
ae04f2 |
$1 > $2
|
|
Packit Service |
ae04f2 |
}
|
|
Packit Service |
ae04f2 |
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
# Export command paths
|
|
Packit Service |
ae04f2 |
#
|
|
Packit Service |
ae04f2 |
export ARPANAME
|
|
Packit Service |
ae04f2 |
export BIGKEY
|
|
Packit Service |
ae04f2 |
export CHECKZONE
|
|
Packit Service |
ae04f2 |
export CYGWIN
|
|
Packit Service |
ae04f2 |
export DESCRIPTION
|
|
Packit Service |
ae04f2 |
export DIG
|
|
Packit Service |
ae04f2 |
export FEATURETEST
|
|
Packit Service |
ae04f2 |
export FSTRM_CAPTURE
|
|
Packit Service |
ae04f2 |
export GENCHECK
|
|
Packit Service |
ae04f2 |
export JOURNALPRINT
|
|
Packit Service |
ae04f2 |
export KEYCREATE
|
|
Packit Service |
ae04f2 |
export KEYDELETE
|
|
Packit Service |
ae04f2 |
export KEYFRLAB
|
|
Packit Service |
ae04f2 |
export KEYGEN
|
|
Packit Service |
ae04f2 |
export KEYSETTOOL
|
|
Packit Service |
ae04f2 |
export KEYSIGNER
|
|
Packit Service |
ae04f2 |
export KRB5_CONFIG
|
|
Packit Service |
ae04f2 |
export LWRESD
|
|
Packit Service |
ae04f2 |
export LWTEST
|
|
Packit Service |
ae04f2 |
export MAKEJOURNAL
|
|
Packit Service |
ae04f2 |
export MDIG
|
|
Packit Service |
ae04f2 |
export NAMED
|
|
Packit Service |
ae04f2 |
export NSLOOKUP
|
|
Packit Service |
ae04f2 |
export NSUPDATE
|
|
Packit Service |
ae04f2 |
export NZD2NZF
|
|
Packit Service |
ae04f2 |
export PERL
|
|
Packit Service |
ae04f2 |
export PIPEQUERIES
|
|
Packit Service |
ae04f2 |
export PK11DEL
|
|
Packit Service |
ae04f2 |
export PK11GEN
|
|
Packit Service |
ae04f2 |
export PK11LIST
|
|
Packit Service |
ae04f2 |
export PSSUSPEND
|
|
Packit Service |
ae04f2 |
export PYTHON
|
|
Packit Service |
ae04f2 |
export RANDFILE
|
|
Packit Service |
ae04f2 |
export RESOLVE
|
|
Packit Service |
ae04f2 |
export RNDC
|
|
Packit Service |
ae04f2 |
export RRCHECKER
|
|
Packit Service |
ae04f2 |
export SAMPLEUPDATE
|
|
Packit Service |
ae04f2 |
export SIGNER
|
|
Packit Service |
ae04f2 |
export SUBDIRS
|
|
Packit Service |
ae04f2 |
export TMPDIR
|