xref: /illumos-gate/usr/src/cmd/svc/milestone/net-nwam (revision f875b4ebb1dd9fdbeb043557cab38ab3bf7f6e01)
1#!/sbin/sh
2#
3# CDDL HEADER START
4#
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.
8#
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.
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 2007 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26
27#ident	"%Z%%M%	%I%	%E% SMI"
28
29. /lib/svc/share/smf_include.sh
30
31#
32# In a shared-IP zone we need this service to be up, but all of the work
33# it tries to do is irrelevant (and will actually lead to the service
34# failing if we try to do it), so just bail out.
35# In the global zone and exclusive-IP zones we proceed.
36#
37smf_configure_ip || exit $SMF_EXIT_OK
38
39case "$1" in
40'refresh')
41	/usr/bin/pkill -HUP -z `smf_zonename` nwamd
42	;;
43
44'start')
45	if smf_is_globalzone; then
46		# Initialize security objects.
47		/sbin/dladm init-secobj
48	fi
49	# start nwamd in foreground; it will daemonize itself
50	if /lib/inet/nwamd ; then
51		exit $SMF_EXIT_OK
52	else
53		exit $SMF_EXIT_ERR_FATAL
54	fi
55	;;
56
57'stop')
58	/usr/bin/pkill -z `smf_zonename` nwamd
59	;;
60
61'-u')
62	# After we run this part of the script upon the next reboot
63	# network/physical:default will be enabled and
64	# network/physical:nwam will be disabled.
65	# There are various other parts of the system (nscd, nfs) that
66	# depend on continuing to have a working network.  For this
67	# reason we don't change the network configuration immediately.
68
69	SVCADM=/usr/sbin/svcadm
70	SVCCFG=/usr/sbin/svccfg
71	net_phys=svc:/network/physical:default
72	net_nwam=svc:/network/physical:nwam
73
74	# Disable network/physical temporarily and make sure that will
75	# be enabled on reboot.
76	$SVCADM disable -st $net_phys
77	$SVCCFG -s $net_phys setprop general/enabled=true
78
79	# If nwam is online then make sure that it's temporarily enabled.
80	nwam_online=`/usr/bin/svcprop -t -p restarter/state $net_nwam`
81	if [ $? -eq 0 ]; then
82		set -- $nwam_online
83		[ $3 = "online" ] && $SVCADM enable -st $net_nwam
84	fi
85
86	# Set nwam so that it won't be enabled upon reboot.
87	$SVCCFG -s $net_nwam setprop general/enabled=false
88	exit 0
89	;;
90
91'-c')
92	# Nothing to do for sysidtool
93	exit 0
94	;;
95
96*)
97	echo "Usage: $0 { start | stop | refresh }"
98	exit $SMF_EXIT_ERR_FATAL
99	;;
100esac
101exit $SMF_EXIT_OK
102