net-loc revision 03e9aa6d0661fbdf89669b14e801767d7e504fe8
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# CDDL HEADER START
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# The contents of this file are subject to the terms of the
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Common Development and Distribution License (the "License").
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# You may not use this file except in compliance with the License.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# See the License for the specific language governing permissions
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# and limitations under the License.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# When distributing Covered Code, include this CDDL HEADER in each
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# If applicable, add the following below this CDDL HEADER, with the
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# fields enclosed by brackets "[]" replaced with your own identifying
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# information: Portions Copyright [yyyy] [name of copyright owner]
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# CDDL HEADER END
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# FMRI consts
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Path to directories
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# echoes DHCP controlled interfaces separated by commas
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Don't parse the output of ifconfig(1M) because interfaces that haven't
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# acquired a DHCP lease also have the DHCP flag set.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan # 1. parse netstat(1M) output for v4 interfaces in BOUND
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan $2 ~ /BOUND/ { printf "%s ", $1 }
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan $2 ~ /INFORMATION/ { printf "%s ", $1 }'
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# get_dhcpinfo <code/identifier>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# echoes the value received through each interface controlled by DHCP;
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# multiple values are echoed as a space-separated list
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# 0 => property is set
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# 1 => property is not set
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan if [ $? -eq 0 ]; then
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# set_smf_prop <fmri> <property name> <property value>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# refresh_svc <fmri>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Refreshes the service.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# restart_svc <fmri>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Restarts the service.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# start_svc <fmri>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Starts the service. If the service is already enabled, restarts it. If
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# it is not enabled, temporarily enables it.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# stop_svc <fmri>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Temporarily disables the service.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# copy_default <dir> <file>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Copies <dir>/<file>.dfl to <dir>/<file>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan $CP -p $1/$2.dfl $1/$2
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# do_dns <location>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Installs DNS information on /etc/resolv.conf for location
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Returns 0 on success, 1 on failure
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan DNS_CONFIGSRC=`nwam_get_loc_list_prop $loc dns-nameservice-configsrc`
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan echo "missing 'dns-nameservice-configsrc' property for '$loc'"
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan echo "Unrecognized DNS configsrc ${configsrc}; ignoring"
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan for (i = 1; i <= NF; i++) printf(" %s", $i); \
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan # Finally, copy our working version to the real thing
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# do_nis <location>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Installs NIS information on /var/yp/binding/ for location
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Returns 0 on success, 1 on failure
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan NIS_CONFIGSRC=`nwam_get_loc_list_prop $loc nis-nameservice-configsrc`
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan echo "missing 'nis-nameservice-configsrc' property for '$loc'"
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan DEFAULT_DOMAIN=`nwam_get_loc_prop $loc default-domain`
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan echo "Unrecognized NIS configsrc ${configsrc}; ignoring"
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# do_ldap <location>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Installs LDAP information using ldapclient(1M) for location
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Returns 0 on success, 1 on failure
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan LDAP_CONFIGSRC=`nwam_get_loc_list_prop $loc ldap-nameservice-configsrc`
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan echo "missing 'ldap-nameservice-configsrc' property for '$loc'"
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan DEFAULT_DOMAIN=`nwam_get_loc_prop $loc default-domain`
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan if [ -z $LDAP_SERVERS -o -z $DEFAULT_DOMAIN ]; then
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan echo "Invalid LDAP configsrc ${configsrc}; ignoring"
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan # Use ldapclient(1M) to initialize LDAP client settings.
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan if [ -n "$DEFAULT_DOMAIN" -o -n "$LDAP_SERVERS" ]; then
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# do_ns <location>
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Installs different nameservices for location
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan# Returns 0 on success, 1 on failure
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan # Disable nameservices temporarily while we reconfigure. Copy
4bac220845f606f60663ed6f3a2b88caa00ae87enarayan # /etc/nsswitch.files to /etc/nsswitch.conf first so that only "files"
for ns in $NAMESERVICES; do
loc=$1
refresh_ipf=false
refresh_ipf=true
refresh_ipf=true
refresh_ipf=true
refresh_ipf=true
domain=$1
loc=$1
if [ $? -eq 0 ]; then
loc=$1
echo activating $loc location
# location selection/activation happens below
# location selection/activation happens below
# involved. Because NIS affects more parts of the system (e.g. automounts) we
# are not willing to make NIS part of the Automatic location (i.e. enable it
-e"s,\(ipfilter-config-file=\).*/\(.*\),\1$ULP/\2," \
-e"s,\(ipfilter-v6-config-file=\).*/\(.*\),\1$ULP/\2," \
-e"s,\(ipnat-config-file=\).*/\(.*\),\1$ULP/\2," \
-e"s,\(ippool-config-file=\).*/\(.*\),\1$ULP/\2," \
-e"s,\(ike-config-file=\).*/\(.*\),\1$ULP/\2," \
-e"s,\(ipsecpolicy-config-file=\).*/\(.*\),\1$ULP/\2," \
# line of nsswitch.conf.
echo "location '$sel_loc' doesn't exist"
echo "failed to activate '$sel_loc'"
exit $SMF_EXIT_OK