#!/sbin/sh
#
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# This file is part of Quagga.
#
# Quagga is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version.
#
# Quagga is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Quagga; see the file COPYING.  If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
#
# Starts/stops the given daemon

SMFINCLUDE=/lib/svc/share/smf_include.sh
ROUTEADMINCLUDE=/lib/svc/share/routing_include.sh
GLOBAL_OPTIONS="PAfiug"
DAEMON_PATH=@sbindir@
USER=@enable_user@
GROUP=@enable_group@

# handle upgrade of daemon-args SMF property to new routeadm properties
# used during upgrade too by routeadm.
# relevant to S10U4+ only.
handle_routeadm_upgrade () {
	GLOBAL_OPTIONS="PAfiug"
	
	daemon_args=`get_daemon_args $SMF_FMRI`
	
	if [ -n "$daemon_args" ]; then
		set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
			"$GLOBAL_OPTIONS" "P" vty_port 0
		set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
			"$GLOBAL_OPTIONS" "A" vty_address
		set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
			"$GLOBAL_OPTIONS" "f" config_file
		set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
			"$GLOBAL_OPTIONS" "i" pid_file
		set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
			"$GLOBAL_OPTIONS" "u" user
		set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
			"$GLOBAL_OPTIONS" "g" group
		
		case "$1" in
		zebra)
			set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
				"${GLOBAL_OPTIONS}b" "b" batch true false
			;;
		ripd|ripngd)
			set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
				"${GLOBAL_OPTIONS}r" "r" retain true false
			;;
		bgpd)
			set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
				"${GLOBAL_OPTIONS}rnp" "r" retain true false
			set_daemon_boolean_property "$SMF_FMRI" "$daemon_args" \
				"${GLOBAL_OPTIONS}rnp" "n" no_kernel true false
			set_daemon_value_property "$SMF_FMRI" "$daemon_args" \
				"${GLOBAL_OPTIONS}rnp" "p" bgp_port
		esac
		clear_daemon_args $SMF_FMRI
	fi
}

upgrade_config () {
	DAEMON=$1
	# handle upgrade of SUNWzebra to Quagga
	if [ -d "/etc/quagga" -a ! -f "/etc/quagga/${DAEMON}.conf" ] ; then
		if [ -f "/etc/sfw/zebra/${DAEMON}.conf" ] ; then
			cp "/etc/sfw/zebra/${DAEMON}.conf" \
				"/etc/quagga/${DAEMON}.conf.upgrade" \
				|| exit $SMF_EXIT_ERR_FATAL
			chown "${USER}:${GROUP}" "/etc/quagga/${DAEMON}.conf.upgrade" \
				|| exit $SMF_EXIT_ERR_FATAL
			chmod 0600 "/etc/quagga/${DAEMON}.conf.upgrade" \
				|| exit $SMF_EXIT_ERR_FATAL
			mv "/etc/quagga/${DAEMON}.conf.upgrade" "/etc/quagga/${DAEMON}.conf" \
				|| exit $SMF_EXIT_ERR_FATAL
		fi
	fi

	if [ ! -f "/etc/quagga/${DAEMON}.conf" ] ; then
		touch "/etc/quagga/${DAEMON}.conf.new" \
			|| exit $SMF_EXIT_ERR_FATAL
		chown "${USER}:${GROUP}" "/etc/quagga/${DAEMON}.conf.new" \
			|| exit $SMF_EXIT_ERR_FATAL
		chmod 0600 "/etc/quagga/${DAEMON}.conf.new" \
			|| exit $SMF_EXIT_ERR_FATAL
		mv "/etc/quagga/${DAEMON}.conf.new" "/etc/quagga/${DAEMON}.conf" \
			|| exit $SMF_EXIT_ERR_FATAL
	fi
}

# Relevant to S10+
quagga_is_globalzone () {
	if [ "${QUAGGA_INIT_ZONENAME:=`/sbin/zonename`}" = "global" \
		-o `/sbin/zonename -t` = "exclusive" ]; then
		return 0
	else
		return 1
	fi
}

routeadm_daemon_args () {
	# globals
	args="`get_daemon_option_from_property $SMF_FMRI config_file f`"
	args="${args} `get_daemon_option_from_property $SMF_FMRI vty_port P`"
	args="${args} `get_daemon_option_from_property $SMF_FMRI vty_address A`"
	args="${args} `get_daemon_option_from_property $SMF_FMRI pid_file i`"
	
	# user and group we need for config file upgrade..
	SMF_USER=`get_routeadm_property $SMF_FMRI user`
	SMF_GROUP=`get_routeadm_property()$SMF_FMRI group`
	if [ "${SMF_USER}" ] ; then
		USER="${SMF_USER}"
		args="${args} -u ${SMF_USER}"
	fi
	if [ "${SMF_GROUP}" ] ; then 
		GROUP="${SMF_GROUP}"
		args="${args} -g ${SMF_GROUP}"
	fi

	case $1 in
	zebra)
		args="${args} `get_daemon_option_from_boolean_property $SMF_FMRI batch -b true`"
		;;
	ripd|ripngd)
		args="${args} `get_daemon_option_from_boolean_property $SMF_FMRI retain -r true`"
		;;
	bgpd)
		args="${args} `get_daemon_option_from_boolean_property $SMF_FMRI retain -r true`"
		args="${args} `get_daemon_option_from_boolean_property $SMF_FMRI no_kernel -n true`"
		args="${args} `get_daemon_option_from_property $SMF_FMRI bgp_port p 179`"
		;;
	esac
	echo ${args}
}

# certain daemons need zebra
routeadm_zebra_enable () {

	if [ "$DAEMON" = "zebra" ]; then
		return
	fi
	
	enable_zebra=`/usr/bin/svcprop -p \
		routing/enable_zebra $SMF_FMRI 2> /dev/null`
	if [ "$enable_zebra" != "false" ]; then
		zenabled=`/usr/bin/svcprop -p general/enabled zebra:quagga`
		zenabledt=`/usr/bin/svcprop -p general_ovr/enabled zebra:quagga`
		if [ "$zenabled" = "true" -o "$zenabledt" = "true" ]; then
			/usr/sbin/svcadm disable zebra:quagga
			/usr/sbin/svcadm enable -st zebra:quagga
		else
			/usr/sbin/svcadm enable -st zebra:quagga 
		fi
		if [ "$?" != "0" ]; then
			echo "Could not enable zebra:quagga"
			exit $SMF_EXIT_ERR_FATAL
		fi
	fi
}

# Include smf functions, if available. If not, define smf_present to indicate
# there is no SMF. Should allow this script to work pre-S10.
if [ -f "$SMFINCLUDE" ] ; then
	. "$SMFINCLUDE";
	
	# source the SMF-routeadm include if present..
	if [ -f "$ROUTEADMINCLUDE" ] ; then
		. "$ROUTEADMINCLUDE"
	fi
else
	# pre-SMF system, fake up any functions and exit codes
	# which SMFINCLUDE usually provides.
	smf_present () {
		return 1
	}
	SMF_EXIT_OK=0;
	SMF_EXIT_ERR_CONFIG=96;
	SMF_EXIT_ERR_FATAL=95;
fi
	
# if there's no SMF, set some default DAEMON_ARGS
smf_present || DAEMON_ARGS=""

usage () {
	if smf_present ; then
		echo "Usage: $0 <daemon>";
	else
		echo "Usage: $0 <stop|start> <daemon> <daemon arguments>";
	fi
	echo "The --pid_file argument is implied";
	echo "This help message: $0 <help|usage>";
}

# parse arguments, different according to SMF or not.
case $1 in
	'help' | 'usage')
		usage
		exit $SMF_EXIT_OK
		;;
esac

if smf_present ; then
	QUAGGA_METHOD="start"
else
	QUAGGA_METHOD="$1"
	shift;
fi

DAEMON="$1"

# daemon path must be given
if [ -z "$DAEMON_PATH/$DAEMON" ]; then
	usage
	exit $SMF_EXIT_ERR_FATAL
fi

# only bgpd is suitable for running in a non-global zone, at this
# time.
case "${DAEMON}" in
	bgpd)
	;;
	zebra | ospfd | ospf6d | ripd | ripngd )
		quagga_is_globalzone || exit $SMF_EXIT_OK
	;;
	*)
		usage
		exit $SMF_EXIT_ERR_CONFIG;
	;;
esac

# Older Quagga SMF packages pass daemon args on the commandline
# Newer SMF routeadm model uses properties for each argument
# so we must handle that.
if [ smf_present -a -f "$ROUTEADMINCLUDE" ]; then
	handle_routeadm_upgrade $DAEMON;
	DAEMON_ARGS=`routeadm_daemon_args`;
	routeadm_zebra_enable $DAEMON;
else
	if [ $# -gt 0 ] ; then
		shift
		DAEMON_ARGS="$@"
	fi
fi

upgrade_config "$DAEMON"

if [ ! -f "@sysconfdir@/${DAEMON}.conf" ] ; then
	echo "Could not find config file, @sysconfdir@/${DAEMON}.conf"
	exit $SMF_EXIT_ERR_CONFIG
fi

# we need @quagga_statedir@ to exist, it probably is on tmpfs.
if [ ! -d @quagga_statedir@ ] ; then
	mkdir -p @quagga_statedir@
	chown @enable_user@:@enable_group@ @quagga_statedir@
	chmod 751 @quagga_statedir@
fi

PIDFILE="@quagga_statedir@/${DAEMON}.pid"

start () {
	if [ ! -x "$DAEMON_PATH/$DAEMON" ] ; then
		echo "Error, could not find daemon, $DAEMON_PATH/$DAEMON"
		exit $SMF_EXIT_ERR_FATAL
	fi
	eval exec $DAEMON_PATH/$DAEMON $DAEMON_ARGS --pid_file ${PIDFILE} &
}

stop_by_pidfile () {
	if [ -f "${PIDFILE}" ]; then
		/usr/bin/kill -TERM `/usr/bin/cat "${PIDFILE}"`
	fi
}

case "$QUAGGA_METHOD" in
'start')
	start
	;;
'stop')
	stop_by_pidfile
	;;

*)
	usage
	exit $SMF_EXIT_ERR_FATAL
	;;
esac	

exit $SMF_EXIT_OK;
