#!/bin/sh # # 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 # or http://www.opensolaris.org/os/licensing. # 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 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Convert Solaris 7 and 8 versions of DHCP service to new configuration # # # translate_init_options # Translate command line options that were in the startup script # to configuration file options. # translate_init_options() { while getopts b:dh:i:no:r:t:vel: optname; do case $optname in b) echo "BOOTP_COMPAT=$OPTARG" >>${CNEW};; d) echo "DEBUG=TRUE" >>${CNEW};; h) echo "RELAY_HOPS=$OPTARG" >>${CNEW};; i) echo "INTERFACES=$OPTARG" >>${CNEW};; n) echo "ICMP_VERIFY=FALSE" >>${CNEW};; o) echo "OFFER_CACHE_TIMEOUT=$OPTARG" >>${CNEW};; r) echo "RUN_MODE=relay" >>${CNEW} echo "RELAY_DESTINATIONS=$OPTARG" >>${CNEW} RUN_MODE=relay;; t) echo "RESCAN_INTERVAL=$OPTARG" >>${CNEW};; v) echo "VERBOSE=TRUE" >>${CNEW};; # ETHERS_COMPAT is no longer supported, ignore e) ;; l) echo "LOGGING_FACILITY=$OPTARG" >>${CNEW};; esac done } PATH="/usr/sbin:/usr/bin:/bin" export PATH # Set PKG_INSTALL_ROOT if it is not already set. : ${PKG_INSTALL_ROOT:=/} # # Create dhcpsvc.conf file. RESOURCE and PATH directives are converted # from /etc/default/dhcp entries. CONVER is set to indicate DHCP tables # need to be converted. DAEMON_ENABLED is set according to criteria that # were used by old releases when deciding whether to run the daemon. # CNEW=${PKG_INSTALL_ROOT}/etc/inet/dhcpsvc.conf CTMP=${CNEW}.$$ COLD=${PKG_INSTALL_ROOT}/etc/default/dhcp START_SCRIPT=${PKG_INSTALL_ROOT}/etc/init.d/dhcp START_LINK=${PKG_INSTALL_ROOT}/etc/rc3.d/S34dhcp if [ ! -f ${CNEW} ] then if [ -f ${COLD} ] then cp -p ${COLD} ${CTMP} eval `grep '^RESOURCE=' ${CTMP}` NP=`grep '^PATH=' ${CTMP} | cut -c6-` if [ "${RESOURCE}" = "nisplus" ] then # # need to prepend the domainname with org_dir, # since we no longer automatically prepend it. # NP="org_dir.${NP}" fi # Add SUNW resource prefix RESOURCE="SUNW${RESOURCE}" # Update / Create new config file sed -e "s|^PATH=.*$|PATH=${NP}|" \ -e "s|^RESOURCE=.*$|RESOURCE=${RESOURCE}|" ${CTMP} > ${CNEW} if [ ${?} -eq 0 ] then echo 'CONVER=0' >> ${CNEW} rm -f ${CTMP} else echo "WARNING: Conversion from /etc/default/dhcp to /etc/inet/dhcpsvc.conf failed" >&2 echo "during update of SUNWdhcsr package." >&2 echo "Consult dhcpsvc.conf(4)" >&2 rm -f ${CTMP} ${CNEW} exit 0 fi fi # Convert any options in the init file eval `grep '^DHCPDOPTIONS=' ${START_SCRIPT} 2>/dev/null` if [ "$DHCPDOPTIONS" ] then translate_init_options $DHCPDOPTIONS fi if [ -f ${START_LINK} ] then # The first Solaris 8 init script ran the daemon unconditionally grep '^#ident' $START_SCRIPT | grep '1\.17' if [ $? -eq 0 ] then echo "DAEMON_ENABLED=TRUE" >>${CNEW} else # Solaris 7 init script ran the daemon conditionally if [ -f ${COLD} -o "$RUN_MODE" = "relay" ] then echo "DAEMON_ENABLED=TRUE" >>${CNEW} fi fi fi if [ -f ${CNEW} ] then chmod 444 ${CNEW} chgrp sys ${CNEW} rm -f ${COLD} 2>/dev/null fi fi exit 0