net-nwam revision d62bc4badc1c1f1549c961cfb8b420e650e1272b
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering#!/sbin/sh
b7ff1e47da4653d2ff1ec7b489e6067fed29d8c5Lennart Poettering#
c904f64d84db8c4eebedf210ba10893f19ba05edLennart Poettering# CDDL HEADER START
c904f64d84db8c4eebedf210ba10893f19ba05edLennart Poettering#
05677bb78079c3fa0283101aac2c07581f4873f1Lennart Poettering# The contents of this file are subject to the terms of the
73090dc815390f4fca4e3ed8a7e1d3806605daaaLennart Poettering# Common Development and Distribution License (the "License").
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering# You may not use this file except in compliance with the License.
35c5c7a01daeb2c83c693deea07c8f2d0d6c83e2Lennart Poettering#
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ddd88763921a1534081ed28e36f6712a85449005Lennart Poettering# or http://www.opensolaris.org/os/licensing.
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers# See the License for the specific language governing permissions
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers# and limitations under the License.
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers#
f957632b960a0a42999b38ded7089fa602b41745Kay Sievers# When distributing Covered Code, include this CDDL HEADER in each
9a36607584bbd1d78775353e022a51794b4e27b1Lennart Poettering# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9a36607584bbd1d78775353e022a51794b4e27b1Lennart Poettering# If applicable, add the following below this CDDL HEADER, with the
a40593a0d0d740efa387e35411e1e456a6c5aba7Lennart Poettering# fields enclosed by brackets "[]" replaced with your own identifying
a40593a0d0d740efa387e35411e1e456a6c5aba7Lennart Poettering# information: Portions Copyright [yyyy] [name of copyright owner]
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poettering#
068665b6fd9839f27bcace7e8f56c0baa6935272Lennart Poettering# CDDL HEADER END
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering#
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering#
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering# Use is subject to license terms.
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering#
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering#ident "%Z%%M% %I% %E% SMI"
fb0864e7b9c6d26269ccea6ec5c0fd921c029781Lennart Poettering
18da49531e4c6b31bd2439b4d738dc1bb9660af1Lennart Poettering. /lib/svc/share/smf_include.sh
18da49531e4c6b31bd2439b4d738dc1bb9660af1Lennart Poettering. /lib/svc/share/net_include.sh
8af0fcdb909b87ef4dcef34d50df814656acec81Lennart Poettering
8af0fcdb909b87ef4dcef34d50df814656acec81Lennart Poettering#
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poettering# In a shared-IP zone we need this service to be up, but all of the work
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poettering# it tries to do is irrelevant (and will actually lead to the service
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poettering# failing if we try to do it), so just bail out.
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poettering# In the global zone and exclusive-IP zones we proceed.
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poettering#
9586cdfab6a2638078702b7fea7e16b3a71899e2Lennart Poetteringsmf_configure_ip || exit $SMF_EXIT_OK
6b80b9b8ee6d372e00ece51e6a11c6d31899aaecLennart Poettering
6b80b9b8ee6d372e00ece51e6a11c6d31899aaecLennart Poetteringcase "$1" in
54ecda32c60c6f2548f74703bfd324694393edaaLennart Poettering'refresh')
54ecda32c60c6f2548f74703bfd324694393edaaLennart Poettering /usr/bin/pkill -HUP -z `smf_zonename` nwamd
7f110ff9b8828b477e87de7b28c708cf69a3d008Lennart Poettering ;;
7f110ff9b8828b477e87de7b28c708cf69a3d008Lennart Poettering
7f110ff9b8828b477e87de7b28c708cf69a3d008Lennart Poettering'start')
7f110ff9b8828b477e87de7b28c708cf69a3d008Lennart Poettering if smf_is_globalzone; then
8d2831af71debde5dc20bfa84a68a7190eab8542Lennart Poettering net_reconfigure || exit $SMF_EXIT_ERR_CONFIG
8d2831af71debde5dc20bfa84a68a7190eab8542Lennart Poettering
93e487fc8f88847964baf6e61a58e34ab41898d1Lennart Poettering #
93e487fc8f88847964baf6e61a58e34ab41898d1Lennart Poettering # Upgrade handling. The upgrade file consists of a series
7d900eb6f58ca76a0f742c6e1823aa7317d4471fLennart Poettering # of dladm(1M) commands. Note that after we are done, we
7d900eb6f58ca76a0f742c6e1823aa7317d4471fLennart Poettering # cannot rename the upgrade script file as the file system
7d900eb6f58ca76a0f742c6e1823aa7317d4471fLennart Poettering # is still read-only at this point. Defer this to the
7d900eb6f58ca76a0f742c6e1823aa7317d4471fLennart Poettering # manifest-import service.
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering #
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering upgrade_script=/var/svc/profile/upgrade_datalink
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering if [ -f "${upgrade_script}" ]; then
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering . "${upgrade_script}"
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering fi
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering # Initialize security objects.
101f077676e9fbe1a66c8b2dc4864a8d7a94c372Lennart Poettering /sbin/dladm init-secobj
f7f964eb3625e4cca7f16377fa12aa7a760243e7Lennart Poettering fi
f7f964eb3625e4cca7f16377fa12aa7a760243e7Lennart Poettering # start nwamd in foreground; it will daemonize itself
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering if /lib/inet/nwamd ; then
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering exit $SMF_EXIT_OK
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering else
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering exit $SMF_EXIT_ERR_FATAL
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering fi
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering ;;
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering
d0e5a33374cee92962af33dfc03873e470b014f6Lennart Poettering'stop')
6edd7ca1624f89c9a36067b721a0280e748acb17Kay Sievers /usr/bin/pkill -z `smf_zonename` nwamd
6edd7ca1624f89c9a36067b721a0280e748acb17Kay Sievers ;;
6edd7ca1624f89c9a36067b721a0280e748acb17Kay Sievers
15e9fbd851c15ecaad4888932584f37dcd26111aLennart Poettering'-u')
15e9fbd851c15ecaad4888932584f37dcd26111aLennart Poettering # After we run this part of the script upon the next reboot
53ed2eeb2e709a6c0d152d7bdf2d9a4b9f997a16Lennart Poettering # network/physical:default will be enabled and
53ed2eeb2e709a6c0d152d7bdf2d9a4b9f997a16Lennart Poettering # network/physical:nwam will be disabled.
353e12c2f4a9e96a47eb80b80d2ffb7bc1d44a1bLennart Poettering # There are various other parts of the system (nscd, nfs) that
353e12c2f4a9e96a47eb80b80d2ffb7bc1d44a1bLennart Poettering # depend on continuing to have a working network. For this
12ac304714996c3c3308d014b301d0d42d16c117Lennart Poettering # reason we don't change the network configuration immediately.
12ac304714996c3c3308d014b301d0d42d16c117Lennart Poettering
2496985585f8d0febfc578b78d5fb098d545565bLennart Poettering SVCADM=/usr/sbin/svcadm
2496985585f8d0febfc578b78d5fb098d545565bLennart Poettering SVCCFG=/usr/sbin/svccfg
680a1dbc354b2f437b4e06e27d4c43217977efdfLennart Poettering net_phys=svc:/network/physical:default
680a1dbc354b2f437b4e06e27d4c43217977efdfLennart Poettering net_nwam=svc:/network/physical:nwam
7e64c73a93cdcc7068280f3e3ba8adbd6c6f8f84Lennart Poettering
7e64c73a93cdcc7068280f3e3ba8adbd6c6f8f84Lennart Poettering # Disable network/physical temporarily and make sure that will
c4aa65e7147dc742886edf25593e10466b02fc3aLennart Poettering # be enabled on reboot.
7e64c73a93cdcc7068280f3e3ba8adbd6c6f8f84Lennart Poettering $SVCADM disable -st $net_phys
36e43bddd0a4526e77cdae2c922bb29f67bd74adLennart Poettering $SVCCFG -s $net_phys setprop general/enabled=true
36e43bddd0a4526e77cdae2c922bb29f67bd74adLennart Poettering
acb14d318b84bda00d1e666d7dab6794d5bbeb3fLennart Poettering # If nwam is online then make sure that it's temporarily enabled.
b61c90514e134dc781617d172961f25e7352f53bLennart Poettering nwam_online=`/usr/bin/svcprop -t -p restarter/state $net_nwam`
b61c90514e134dc781617d172961f25e7352f53bLennart Poettering if [ $? -eq 0 ]; then
b61c90514e134dc781617d172961f25e7352f53bLennart Poettering set -- $nwam_online
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering [ $3 = "online" ] && $SVCADM enable -st $net_nwam
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering fi
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering # Set nwam so that it won't be enabled upon reboot.
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering $SVCCFG -s $net_nwam setprop general/enabled=false
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering exit 0
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering ;;
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering'-c')
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering # Nothing to do for sysidtool
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering exit 0
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering ;;
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering
a558d00381291afd6a81f7df07269fe76eeae556Lennart Poettering*)
05aa9edde0f9f4077b8120389c93cb0134eda9c5Lennart Poettering echo "Usage: $0 { start | stop | refresh }"
05aa9edde0f9f4077b8120389c93cb0134eda9c5Lennart Poettering exit $SMF_EXIT_ERR_FATAL
31ed59c51126fce7d958c188772a397e2a1ed010Lennart Poettering ;;
31ed59c51126fce7d958c188772a397e2a1ed010Lennart Poetteringesac
62f21ec91ad8e7e24079962f4df066b0094fe68dLennart Poetteringexit $SMF_EXIT_OK
62f21ec91ad8e7e24079962f4df066b0094fe68dLennart Poettering