8354 sync regcomp(3C) with upstream (fix make catalog)
[unleashed/tickless.git] / usr / src / cmd / svc / milestone / identity-node
blobc9b20ba669111f3b891f71d5f36dd1c7c09067df
1 #!/sbin/sh
3 # CDDL HEADER START
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
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]
20 # CDDL HEADER END
23 # Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T.
24 # All rights reserved.
27 # Copyright 2006 Sun Microsystems, Inc. All rights reserved.
28 # Use is subject to license terms.
30 # ident "%Z%%M% %I% %E% SMI"
32 . /lib/svc/share/smf_include.sh
33 . /lib/svc/share/net_include.sh
35 # Make sure that the libraries essential to this stage of booting can be found.
36 LD_LIBRARY_PATH=/lib; export LD_LIBRARY_PATH
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.
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.
54 smf_netstrategy
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`
75 fi ;;
76 esac
79 # If the netstrategy was unsuccessful and we haven't got a locally configured
80 # name, default to "unknown"
82 if [ -z "$hostname" ]; then
83 hostname="`shcat /etc/nodename 2>/dev/null`"
84 if [ -z "$hostname" ]; then
85 hostname="unknown"
89 /sbin/uname -S $hostname
91 echo "Hostname: `/sbin/uname -n`" > /dev/msglog
93 # Reset the library path now that we are past the critical stage
94 unset LD_LIBRARY_PATH
96 exit $SMF_EXIT_OK