diff options
Diffstat (limited to 'usr/src/cmd/rpcsvc/nisplus')
| -rw-r--r-- | usr/src/cmd/rpcsvc/nisplus | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/usr/src/cmd/rpcsvc/nisplus b/usr/src/cmd/rpcsvc/nisplus new file mode 100644 index 0000000000..d6e804bf82 --- /dev/null +++ b/usr/src/cmd/rpcsvc/nisplus @@ -0,0 +1,80 @@ +#!/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 2004 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# +#ident "%Z%%M% %I% %E% SMI" + +. /lib/svc/share/smf_include.sh + +cachemgr=0 +if [ -f /var/nis/NIS_COLD_START ]; then + cache=`/usr/bin/svcprop -p application_ovr/clear_cache $SMF_FMRI \ + 2>/dev/null` + if [ $? != 0 ]; then + cache=`/usr/bin/svcprop -p application/clear_cache $SMF_FMRI \ + 2>/dev/null` + fi + + [ "$cache" = "true" ] && cachemgr_flags="$cachemgr_flags -i" + + /usr/sbin/nis_cachemgr $cachemgr_flags || exit $? + cachemgr=1 +fi + +[ -z "$_INIT_UTS_NODENAME" ] && \ + _INIT_UTS_NODENAME=`/usr/bin/uname -n` + +hostname=`echo "$_INIT_UTS_NODENAME" | /usr/bin/cut -d. -f1 | \ + /usr/bin/tr '[A-Z]' '[a-z]'` + +nisd=0 +if [ -d /var/nis/data -o -d /var/nis/$hostname ]; then + emulate=`/usr/bin/svcprop -p application/emulate_yp $SMF_FMRI \ + 2>/dev/null` + [ $? = 0 ] && [ "$emulate" = "true" ] && nisd_flags="$nisd_flags -Y" + + security=`/usr/bin/svcprop -p application/security $SMF_FMRI \ + 2>/dev/null` + [ $? = 0 ] && nisd_flags="$nisd_flags -S $security" + + /usr/sbin/rpc.nisd $nisd_flags || exit $? + nisd=1 + + # We always start the NIS+ Password Update Daemon. If it + # finds the NIS+ server is not a Master it will just exit. + # It also determines if the server is running in NIS (YP) + # compat mode and automatically registers a yppasswdd so + # NIS (YP) clients can change their passwords. + + /usr/sbin/rpc.nispasswdd || exit $? +fi + +if [ "$cachemgr" = 0 -a "$nisd" = 0 ]; then + # If we're neither able to be a client or a server, then + # we are misconfigured. + exit $SMF_EXIT_ERR_CONFIG +fi + +exit $SMF_EXIT_OK |
