cfgdhcp.san revision 7c478bd95313f5f23a4c958a745db2134aa03244
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
#ident "%Z%%M% %I% %E% SMI"
#
# Copyright (c) 2001 by Sun Microsystems, Inc.
# All rights reserved.
#
#
# Source the utilities.
#
. ${DIRNAME}/utilities.san
#
# Process the input arguments.
#
process_args $@
#
# In case the tester wants to see script output, allow them
# to run in debug mode.
#
if [ ! -z "${DEBUG}" ]
then
echo "Output from test: ${TESTNAME}" >${OUTFILE}
echo >>${OUTFILE}
echo "debug output can be found at ${OUTFILE}"
else
fi
#
# Set DNSSERV and DNSDMAIN if server has a resolv.conf. Return 0 if it does,
# nonzero otherwise.
#
{
if [ ! -f /etc/resolv.conf ]
then
return 1
fi
nsr=0
dmn=0
DNSRV=""
DNAME=""
for item in `cat /etc/resolv.conf`
do
if [ "${item}" = "nameserver" ]
then
nsr=1
continue
fi
if [ "${item}" = "domain" ]
then
dmn=1
continue
fi
then
if [ -z "${DNSRV}" ]
then
else
DNSRV="${DNSRV} ${item}"
fi
nsr=0
continue
fi
then
DNAME="${item}"
dmn=0
continue
fi
done
if [ ! -z "${DNSRV}" ]
then
DNSSERV="DNSserv=${DNSRV}"
fi
if [ ! -z "${DNAME}" ]
then
DNSDMAIN="DNSdmain=\"${DNAME}\""
fi
if [ ! -z "${DNSSERV}" -o ! -z "${DNSDMAIN}" ]
then
return 0
fi
return 1
}
#
# Set variables.
#
#
# If the DHCP server is running, kill it.
#
#
# Make sure to clean up before we configure.
#
#
# Config.
#
RET=$?
if [ "${RET}" != "0" ]
then
echo "Error configuring DHCP = ${RET}"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the dhcp defaults file was created.
#
if [ ! -f ${DHCP_DEFAULTS} ]
then
echo "${DHCP_DEFAULTS} not created."
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the run mode was defined in the defaults file
#
if [ -z "${DEFLINE}" ]
then
echo "RUN_MODE not set correctly in ${DHCP_DEFAULTS}"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the datastore resource was defined in the defaults file
#
if [ -z "${DEFLINE}" ]
then
echo "RESOURCE not set correctly in ${DHCP_DEFAULTS}"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the datastore path was defined in the defaults file
#
if [ -z "${DEFLINE}" ]
then
echo "PATH not set correctly in ${DHCP_DEFAULTS}"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the hosts resource was defined in the defaults file
#
if [ -z "${DEFLINE}" ]
then
echo "HOSTS_RESOURCE not set correctly in ${DHCP_DEFAULTS}"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the dhcptab data was created.
#
RET=$?
if [ "${RET}" != "0" ]
then
echo "Error displaying dhcptab = ${RET}"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the Locale symbol is defined in the dhcptab.
#
if [ -z "${LOCALE}" ]
then
echo "Locale macro does not exist in dhcptab"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the server macro is defined in the dhcptab.
#
if [ -z "${SERVER_MACRO}" ]
then
echo "Server macro does not exist in dhcptab"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Grab the server macro definition
#
#
# Verify that the Locale symbol is defined as part of the macro definition
#
SRCH=":Include=Locale:"
#
# Verify that the LeaseTim symbol is defined as part of the macro definition
#
SRCH=":LeaseTim=86400:"
#
# Verify that the LeaseNeg symbol is defined as part of the macro definition
#
SRCH=":LeaseNeg:"
#
# Verify that the Timeserv symbol is defined as part of the macro definition
#
SRCH=":Timeserv=${SRVADDR}:"
#
# Go get the DNS settings
#
#
# Verify that the DNSdmain symbol is defined as part of the macro definition
#
#
# Verify that the DNSserv symbol is defined as part of the macro definition
#
#
# Verify that all symbols have been accounted for
#
if [ "${MACRO_DEFINITION}" != ":" ]
then
echo "Server macro definition has invalid extra symbols: ${MACRO_DEFINITION}"
echo "${TESTNAME} - Test failed!"
exit 1
fi
#
# Verify that the dhcp server was started.
#
if [ -z "${PID}" ]
then
echo "DHCP Server was not started."
echo "${TESTNAME} - Test failed!"
exit 1
fi
echo "${TESTNAME} - Test passed."
exit 0