13048Samaguire#!/sbin/sh 23048Samaguire# 33048Samaguire# CDDL HEADER START 43048Samaguire# 53048Samaguire# The contents of this file are subject to the terms of the 63048Samaguire# Common Development and Distribution License (the "License"). 73048Samaguire# You may not use this file except in compliance with the License. 83048Samaguire# 93048Samaguire# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 103048Samaguire# or http://www.opensolaris.org/os/licensing. 113048Samaguire# See the License for the specific language governing permissions 123048Samaguire# and limitations under the License. 133048Samaguire# 143048Samaguire# When distributing Covered Code, include this CDDL HEADER in each 153048Samaguire# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 163048Samaguire# If applicable, add the following below this CDDL HEADER, with the 173048Samaguire# fields enclosed by brackets "[]" replaced with your own identifying 183048Samaguire# information: Portions Copyright [yyyy] [name of copyright owner] 193048Samaguire# 203048Samaguire# CDDL HEADER END 213048Samaguire# 223048Samaguire# 23*3448Sdh155122# Copyright 2007 Sun Microsystems, Inc. All rights reserved. 243048Samaguire# Use is subject to license terms. 253048Samaguire# 263048Samaguire# ident "%Z%%M% %I% %E% SMI" 273048Samaguire 283048Samaguire. /lib/svc/share/smf_include.sh 293048Samaguire. /lib/svc/share/routing_include.sh 303048Samaguire 31*3448Sdh155122smf_configure_ip || exit $SMF_EXIT_OK 323048Samaguire 333048Samaguiredaemon_args=`get_daemon_args $SMF_FMRI` 343048Samaguireoptions="AdghmnqsStvVzT:F:P:" 353048Samaguire 363048Samaguire# 373048Samaguire# Handle upgrade - routing/daemon-args property must be mapped to properties 383048Samaguire# in routeadm property group. Note that the SMF-incompatible -t option is not 393048Samaguire# supported, since it requires that in.routed run in the foreground. 403048Samaguire# 413048Samaguireif [ -n "$daemon_args" ]; then 423048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 433048Samaguire "$options" "A" ignore_auth false true 443048Samaguire set_daemon_ordered_multivalue_property "$SMF_FMRI" "$daemon_args" \ 453048Samaguire "$options" "F" minimize_routes 463048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 473048Samaguire "$options" "g" offer_default_route true false 483048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 493048Samaguire "$options" "h" advertise_host_routes false true 503048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 513048Samaguire "$options" "m" advertise_host_routes_primary true false 523048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 533048Samaguire "$options" "n" install_routes false true 543048Samaguire set_daemon_ordered_multivalue_property "$SMF_FMRI" "$daemon_args" \ 553048Samaguire "$options" "P" parameters 563048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 573048Samaguire "$options" "q" supply_routes false true 583048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 593048Samaguire "$options" "s" supply_routes true 603048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 613048Samaguire "$options" "S" default_routes_only true false 623048Samaguire set_daemon_value_property "$SMF_FMRI" "$daemon_args" \ 633048Samaguire "$options" "T" log_file 643048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 653048Samaguire "$options" "v" debug true false 663048Samaguire set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \ 673048Samaguire "$options" "z" debug true 683048Samaguire clear_daemon_args $SMF_FMRI 693048Samaguirefi 703048Samaguire 713048Samaguire# 723048Samaguire# Assemble arguments to daemon from properties 733048Samaguire# 743048Samaguireargs="`get_daemon_option_from_boolean_property $SMF_FMRI ignore_auth \ 753048Samaguire A false`" 763048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 773048Samaguire offer_default_route g true`" 783048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 793048Samaguire advertise_host_routes h false`" 803048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 813048Samaguire advertise_host_routes_primary m true`" 823048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 833048Samaguire install_routes n false`" 843048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 853048Samaguire supply_routes q false`" 863048Samaguire# We only use -s option when there are multiple network interfaces. 873048Samaguirenumv4ifs=`/usr/sbin/ifconfig -a4u | \ 883048Samaguire /usr/bin/nawk '($1 == "inet" && $2 != "127.0.0.1") { print $2 }' | \ 893048Samaguire /usr/bin/wc -l` 903048Samaguireif [ "$numv4ifs" -gt 1 ]; then 913048Samaguire args="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 923048Samaguire supply_routes s true`" 933048Samaguirefi 943048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 953048Samaguire default_routes_only S true`" 963048Samaguireargs="$args`get_daemon_option_from_boolean_property $SMF_FMRI \ 973048Samaguire debug z true`" 983048Samaguireif [ -n "$args" ]; then 993048Samaguire args="-${args}" 1003048Samaguirefi 1013048Samaguireargs="$args `get_daemon_ordered_multivalue_option_from_property $SMF_FMRI \ 1023048Samaguire minimize_routes F`" 1033048Samaguireargs="$args `get_daemon_ordered_multivalue_option_from_property \ 1043048Samaguire $SMF_FMRI parameters P`" 1053048Samaguireargs="$args `get_daemon_option_from_property $SMF_FMRI \ 1063048Samaguire log_file T`" 1073048Samaguire 1083048Samaguire/usr/sbin/in.routed $args 1093048Samaguire 1103048Samaguire[ "$?" = 0 ] || exit $SMF_EXIT_ERR_FATAL 1113048Samaguire 1123048Samaguireexit "$SMF_EXIT_OK" 113