10 # or http://www.opensolaris.org/os/licensing.
  11 # See the License for the specific language governing permissions
  12 # and limitations under the License.
  13 #
  14 # When distributing Covered Code, include this CDDL HEADER in each
  15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16 # If applicable, add the following below this CDDL HEADER, with the
  17 # fields enclosed by brackets "[]" replaced with your own identifying
  18 # information: Portions Copyright [yyyy] [name of copyright owner]
  19 #
  20 # CDDL HEADER END
  21 #
  22 #
  23 # Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T.
  24 # All rights reserved.
  25 #
  26 #
  27 # Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  28 # Use is subject to license terms.
  29 #
  30 # ident "%Z%%M% %I%     %E% SMI"
  31 
  32 . /lib/svc/share/smf_include.sh
  33 . /lib/svc/share/net_include.sh
  34 
  35 # Make sure that the libraries essential to this stage of booting can be found.
  36 LD_LIBRARY_PATH=/lib; export LD_LIBRARY_PATH
  37 
  38 #
  39 # If DHCP was used on a primary interface then set the hostname
  40 # that was returned. If no hostname was returned, set the name
  41 # to be "unknown". The hostname must be set to something, because
  42 # tooltalk will hang unless the name can be locally resolved.
  43 # Sendmail also requires the name to be resolvable locally.
  44 # Later, in inetsvc, we create a name "unknown" and create a entry
  45 # in the local /etc/inet/hosts file pairing "unknown" with the IP
  46 # address assigned by DHCP.  The use of bootparams as a fallback
  47 # for all non-DHCP cases provides compatibility with the
  48 # behavior of the system before netstrategy was introduced.
  49 #
  50 # For non-global zones, fall back to the `uname -n` value provided by the
  51 # kernel if /etc/nodename does not exist, as is expected on an initial boot.
  52 #
  53 
  54 smf_netstrategy
  55 
  56 case "$_INIT_NET_STRATEGY" in
  57         "dhcp") hostname=`/sbin/dhcpinfo Hostname` ;;
  58         "rarp") hostname=`/sbin/hostconfig -h -p bootparams`
  59                 trap 'intr=1' 2 3
  60                 while [ -z "$hostname" -a ! -f /etc/.UNCONFIGURED -a \
  61                     -z "$intr" ]; do
  62                         echo "re-trying host configuration..."
  63                         # Restrict this to IPv4 interfaces.
  64                         /sbin/ifconfig -adD4 auto-revarp up
  65                         hostname=`/sbin/hostconfig -h -p bootparams`
  66                 done
  67                 trap 2 3 ;;
  68         "none") hostname="`shcat /etc/nodename 2>/dev/null`"
  69                 if [ -z "$hostname" ]; then
  70                         if smf_is_globalzone; then
  71                                 hostname=`/sbin/hostconfig -h -p bootparams`
  72                         else
  73                                 hostname=`/sbin/uname -n`
  74                         fi
  75                 fi ;;
  76 esac
  77 
  | 
 
 
  10 # or http://www.opensolaris.org/os/licensing.
  11 # See the License for the specific language governing permissions
  12 # and limitations under the License.
  13 #
  14 # When distributing Covered Code, include this CDDL HEADER in each
  15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16 # If applicable, add the following below this CDDL HEADER, with the
  17 # fields enclosed by brackets "[]" replaced with your own identifying
  18 # information: Portions Copyright [yyyy] [name of copyright owner]
  19 #
  20 # CDDL HEADER END
  21 #
  22 #
  23 # Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T.
  24 # All rights reserved.
  25 #
  26 #
  27 # Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  28 # Use is subject to license terms.
  29 #
  30 # Copyright 2018 Nexenta Systems Inc. 
  31 
  32 . /lib/svc/share/smf_include.sh
  33 . /lib/svc/share/net_include.sh
  34 
  35 # Make sure that the libraries essential to this stage of booting can be found.
  36 LD_LIBRARY_PATH=/lib; export LD_LIBRARY_PATH
  37 
  38 #
  39 # If DHCP was used on a primary interface then set the hostname
  40 # that was returned. If no hostname was returned, set the name
  41 # to be "unknown". The hostname must be set to something, because
  42 # tooltalk will hang unless the name can be locally resolved.
  43 # Sendmail also requires the name to be resolvable locally.
  44 # Later, in inetsvc, we create a name "unknown" and create a entry
  45 # in the local /etc/inet/hosts file pairing "unknown" with the IP
  46 # address assigned by DHCP.  The use of bootparams as a fallback
  47 # for all non-DHCP cases provides compatibility with the
  48 # behavior of the system before netstrategy was introduced.
  49 #
  50 # For non-global zones, fall back to the `uname -n` value provided by the
  51 # kernel if /etc/nodename does not exist, as is expected on an initial boot.
  52 #
  53 
  54 smf_netstrategy
  55 
  56 case "$_INIT_NET_STRATEGY" in
  57         "dhcp") if [ -s /etc/nodename ]; then
  58                         hostname=`shcat /etc/nodename 2>/dev/null`
  59                 else
  60                         hostname=`/sbin/dhcpinfo Hostname`
  61                 fi
  62                         ;;
  63         "rarp") hostname=`/sbin/hostconfig -h -p bootparams`
  64                 trap 'intr=1' 2 3
  65                 while [ -z "$hostname" -a ! -f /etc/.UNCONFIGURED -a \
  66                     -z "$intr" ]; do
  67                         echo "re-trying host configuration..."
  68                         # Restrict this to IPv4 interfaces.
  69                         /sbin/ifconfig -adD4 auto-revarp up
  70                         hostname=`/sbin/hostconfig -h -p bootparams`
  71                 done
  72                 trap 2 3 ;;
  73         "none") hostname="`shcat /etc/nodename 2>/dev/null`"
  74                 if [ -z "$hostname" ]; then
  75                         if smf_is_globalzone; then
  76                                 hostname=`/sbin/hostconfig -h -p bootparams`
  77                         else
  78                                 hostname=`/sbin/uname -n`
  79                         fi
  80                 fi ;;
  81 esac
  82 
  |