#!/sbin/sh # # Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. # # # Install DNS client service # . /lib/svc/share/smf_include.sh . /lib/svc/share/net_include.sh # Test and import if upgrade 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." net_record_err "$msg" $err exit $SMF_EXIT_ERR_CONFIG fi fi # This is needed to fix a missing refresh. if [[ -w /etc ]]; then /usr/sbin/nscfg export $SMF_FMRI err=$? if [ $err -eq 1 ] ; then msg="Error creating /etc/resolv.conf" net_record_err "$msg" $err return $SMF_EXIT_ERR_FATAL 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="Error creating /etc/resolv.conf" net_record_err "$msg" $err return $SMF_EXIT_ERR_FATAL fi ;; 'unconfigure') # Permanently shutdown service svcadm disable $SMF_FMRI # Unroll any admin customization svccfg -s svc:/network/dns/client delcust if [ $? -ne 0 ]; then echo "Failed to unroll administrative customizations for $SMF_FMRI" exit $SMF_EXIT_ERR_FATAL fi svcadm refresh $SMF_FMRI rm -f /etc/resolv.conf ;; *) echo "Usage: $0 { start | refresh | unconfigure }" exit 1 ;; esac exit $SMF_EXIT_OK