#!/sbin/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 # # # Copyright 1999-2002 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" # Default config values used by script nca=drv/nca ncakmodconf=/etc/nca/ncakmod.conf ncaifconf=/etc/nca/nca.if tempdir=/tmp default_miss_door=/var/run/nca_httpd_1.door # Function used to parse the interface names from /etc/hostname.* entries readifconf() { while read i; do case "$i" in '#'* | '') # Ignore comments, empty lines continue ;; '*') configinterfaces="`echo /etc/hostname.*[0-9] \ 2>/dev/null`" checkforvirt=false break ;; esac configinterfaces="$configinterfaces $i" done } case "$1" in 'start') if [ ! -f $ncakmodconf ]; then # If configuration file is missing, just exit exit 0 fi . $ncakmodconf # Default is "disabled" so we want to exit [ "x$status" != "xenabled" ] && exit 0 if [ -f "$ncaifconf" ]; then readifconf < $ncaifconf configinterfaces="`echo $configinterfaces | \ /bin/sed 's/.etc.hostname.//g'`" for i in $configinterfaces; do findinterface="`echo $i | /bin/grep '[0-9][0-9]*'`" if [ $? -ne 0 ]; then # Need to expand interface (ie. iprb) interface="`echo /etc/hostname.$i*[0-9] \ 2>/dev/null | /bin/sed \ 's/.etc.hostname.//g'`" interfaces="$interfaces $interface" else interfaces="$interfaces $i" fi done # If we don't have any interfaces configured, exit [ -z "$interfaces" ] && exit 0 # Prevent multiple instances of ncaconfd if /bin/pgrep ncaconfd > /dev/null 2>&1; then echo "$0: ncaconfd is already running" exit 1 fi /usr/sbin/modload -p $nca # Insert NCA into the stream of all the interfaces configured. interfaces="`echo $interfaces | /bin/tr ' ' '\012' | \ /bin/grep -v :`" if [ "x$nca_active" != xenabled ]; then /usr/lib/inet/ncaconfd -l $interfaces else /usr/lib/inet/ncaconfd -al $interfaces fi if [ "$httpd_door_path" != "$default_miss_door" ]; then # Set the default HTTPD door in NCA via ndd /usr/sbin/ndd -set /dev/nca httpd_door_path \ $httpd_door_path fi fi ;; 'stop') # Need to reboot the system to stop echo "System reset is required to stop NCA functionality" ;; *) echo "Usage: $0 { start | stop }" exit 1 ;; esac exit 0