1*11767SAnurag.Maskey@Sun.COM#!/sbin/sh 2*11767SAnurag.Maskey@Sun.COM# 3*11767SAnurag.Maskey@Sun.COM# CDDL HEADER START 4*11767SAnurag.Maskey@Sun.COM# 5*11767SAnurag.Maskey@Sun.COM# The contents of this file are subject to the terms of the 6*11767SAnurag.Maskey@Sun.COM# Common Development and Distribution License (the "License"). 7*11767SAnurag.Maskey@Sun.COM# You may not use this file except in compliance with the License. 8*11767SAnurag.Maskey@Sun.COM# 9*11767SAnurag.Maskey@Sun.COM# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*11767SAnurag.Maskey@Sun.COM# or http://www.opensolaris.org/os/licensing. 11*11767SAnurag.Maskey@Sun.COM# See the License for the specific language governing permissions 12*11767SAnurag.Maskey@Sun.COM# and limitations under the License. 13*11767SAnurag.Maskey@Sun.COM# 14*11767SAnurag.Maskey@Sun.COM# When distributing Covered Code, include this CDDL HEADER in each 15*11767SAnurag.Maskey@Sun.COM# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*11767SAnurag.Maskey@Sun.COM# If applicable, add the following below this CDDL HEADER, with the 17*11767SAnurag.Maskey@Sun.COM# fields enclosed by brackets "[]" replaced with your own identifying 18*11767SAnurag.Maskey@Sun.COM# information: Portions Copyright [yyyy] [name of copyright owner] 19*11767SAnurag.Maskey@Sun.COM# 20*11767SAnurag.Maskey@Sun.COM# CDDL HEADER END 21*11767SAnurag.Maskey@Sun.COM# 22*11767SAnurag.Maskey@Sun.COM# 23*11767SAnurag.Maskey@Sun.COM# Copyright 2010 Sun Microsystems, Inc. All rights reserved. 24*11767SAnurag.Maskey@Sun.COM# Use is subject to license terms. 25*11767SAnurag.Maskey@Sun.COM# 26*11767SAnurag.Maskey@Sun.COM 27*11767SAnurag.Maskey@Sun.COM# 28*11767SAnurag.Maskey@Sun.COM# Reset netmask and broadcast address whenever new information is 29*11767SAnurag.Maskey@Sun.COM# availabe from NIS. 30*11767SAnurag.Maskey@Sun.COM# 31*11767SAnurag.Maskey@Sun.COM 32*11767SAnurag.Maskey@Sun.COM. /lib/svc/share/smf_include.sh 33*11767SAnurag.Maskey@Sun.COM 34*11767SAnurag.Maskey@Sun.COM# 35*11767SAnurag.Maskey@Sun.COM# In a shared-IP zone we need this service to be up, but all of the 36*11767SAnurag.Maskey@Sun.COM# work it tries to do is irrelevant (and will actually lead to the 37*11767SAnurag.Maskey@Sun.COM# service failing if we try to do it), so just bail out. 38*11767SAnurag.Maskey@Sun.COM# In the global zone and exclusive-IP zones we proceed. 39*11767SAnurag.Maskey@Sun.COM# 40*11767SAnurag.Maskey@Sun.COMsmf_configure_ip || exit $SMF_EXIT_OK 41*11767SAnurag.Maskey@Sun.COM 42*11767SAnurag.Maskey@Sun.COM# 43*11767SAnurag.Maskey@Sun.COM# wait_nis 44*11767SAnurag.Maskey@Sun.COM# Wait up to 5 seconds for ypbind to obtain a binding. 45*11767SAnurag.Maskey@Sun.COM# 46*11767SAnurag.Maskey@Sun.COMwait_nis () 47*11767SAnurag.Maskey@Sun.COM{ 48*11767SAnurag.Maskey@Sun.COM for i in 1 2 3 4 5; do 49*11767SAnurag.Maskey@Sun.COM server=`/usr/bin/ypwhich 2>/dev/null` 50*11767SAnurag.Maskey@Sun.COM [ $? -eq 0 -a -n "$server" ] && return 0 || sleep 1 51*11767SAnurag.Maskey@Sun.COM done 52*11767SAnurag.Maskey@Sun.COM return 1 53*11767SAnurag.Maskey@Sun.COM} 54*11767SAnurag.Maskey@Sun.COM 55*11767SAnurag.Maskey@Sun.COM# 56*11767SAnurag.Maskey@Sun.COM# Reset the netmask and broadcast address for our network interfaces. 57*11767SAnurag.Maskey@Sun.COM# Since this may result in a name service lookup, we want to now wait 58*11767SAnurag.Maskey@Sun.COM# for NIS to come up if we previously started it. 59*11767SAnurag.Maskey@Sun.COM# 60*11767SAnurag.Maskey@Sun.COMdomain=`/usr/bin/domainname 2>/dev/null` 61*11767SAnurag.Maskey@Sun.COM 62*11767SAnurag.Maskey@Sun.COM[ -z "$domain" ] || [ ! -d /var/yp/binding/$domain ] || wait_nis || \ 63*11767SAnurag.Maskey@Sun.COM echo "WARNING: Timed out waiting for NIS to come up" >& 2 64*11767SAnurag.Maskey@Sun.COM 65*11767SAnurag.Maskey@Sun.COM# 66*11767SAnurag.Maskey@Sun.COM# Re-set the netmask and broadcast addr for all IP interfaces. This 67*11767SAnurag.Maskey@Sun.COM# ifconfig is run here, after waiting for name services, so that 68*11767SAnurag.Maskey@Sun.COM# "netmask +" will find the netmask if it lives in a NIS map. The 'D' 69*11767SAnurag.Maskey@Sun.COM# in -auD tells ifconfig NOT to mess with the interface if it is 70*11767SAnurag.Maskey@Sun.COM# under DHCP control 71*11767SAnurag.Maskey@Sun.COM# 72*11767SAnurag.Maskey@Sun.COM/usr/sbin/ifconfig -auD4 netmask + broadcast + 73*11767SAnurag.Maskey@Sun.COM 74*11767SAnurag.Maskey@Sun.COM# Uncomment these lines to print complete network interface configuration 75*11767SAnurag.Maskey@Sun.COM# echo "network interface configuration:" 76*11767SAnurag.Maskey@Sun.COM# /usr/sbin/ifconfig -a 77