#!/sbin/sh # # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # # # Name service switch configuration service # . /lib/svc/share/smf_include.sh . /lib/svc/share/net_include.sh case "$1" in 'start') # Only import on first boot after install/upgrade. if is_self_assembly_boot; then /usr/sbin/nscfg import -q $SMF_FMRI err=$? if [ $err -eq 1 ] ; then msg="WARNING: $SMF_FMRI configuration import error." net_record_err "$msg" $err exit $SMF_EXIT_ERR_CONFIG elif [ $err -eq 3 ] ; then msg="WARNING: $SMF_FMRI no configuration file found." net_record_err "$msg" $err exit $SMF_EXIT_ERR_CONFIG fi fi # Only export if allowed. if [[ -w /etc ]]; then /usr/sbin/nscfg export $SMF_FMRI err=$? if [ $err -eq 1 ]; then msg="WARNING: $SMF_FMRI configuration export error." net_record_err "$msg" $err exit $SMF_EXIT_ERR_CONFIG fi fi ;; 'refresh') # When we can't write the configuration file, we want an error. /usr/sbin/nscfg export $SMF_FMRI err=$? if [ $err -eq 2 ] ; then exit $SMF_EXIT_OK elif [ $err -ne 0 ]; then msg="WARNING: $SMF_FMRI configuration export error." net_record_err "$msg" $err exit $SMF_EXIT_ERR_CONFIG fi ;; 'unconfigure') # Unroll any admin customization svccfg -s svc:/system/name-service/switch delcust if [ $? -ne 0 ]; then echo "Failed to unroll administrative customizations for $SMF_FMRI" exit $SMF_EXIT_ERR_FATAL fi svcadm refresh svc:/system/name-service/switch # Revert legacy config to original state if [[ -w /etc ]]; then /usr/sbin/nscfg export $SMF_FMRI fi ;; *) echo "Usage: $0 { start | refresh | unconfigure }" exit 1 ;; esac exit $SMF_EXIT_OK