#!/sbin/sh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"@(#)svc-nscd	1.12	06/05/03 SMI"

. /lib/svc/share/smf_include.sh

# Trusted Extensions non-global zones need special handling

if (smf_is_system_labeled); then
	if [ `/sbin/zonename` != "global" ]; then

        	# If needed create a door to the global zone daemon.
        	if [ ! -L /var/run/name_service_door ]; then
                	ln -s /var/tsol/doors/name_service_door /var/run || \
                    	exit $SMF_EXIT_ERR_FATAL
        	fi

        	# If current service duration is not "transient", create
        	# a dummy background process to preserve contract lifetime.
        	duration=""
        	if /bin/svcprop -q -c -p startd/duration $SMF_FMRI ; then
                	duration=`/bin/svcprop -c -p startd/duration $SMF_FMRI`
        	fi
        	if [ "$duration" != "transient" ]; then
                	( while true ; do sleep 3600 ; done ) &
        	fi

        	# The real daemon is not started in non-global zones,
		# so exit now.
        	exit $SMF_EXIT_OK
	fi

fi

if [ -f /etc/nscd.conf -a -f /usr/sbin/nscd ]; then
	secure=""

	if egrep -s "^(passwd|passwd_compat):.*nisplus" /etc/nsswitch.conf
	then
		/usr/lib/nscd_nischeck passwd || secure=" -S passwd,yes"
	fi

	/usr/sbin/nscd$secure < /dev/null > /dev/msglog 2>&1 &
else
	echo "No /etc/nscd.conf or no /usr/sbin/nscd"
	exit $SMF_EXIT_ERR_CONFIG
fi
