#!/bin/sh

# chkconfig: - 90 25
# description: Gadu-Gadu relaying agent (proxy) daemon

# Source function library.
. /etc/rc.d/init.d/functions

RETVAL=0

prepare_parms() {
	[ -f /etc/sysconfig/ggrelay ] && . /etc/sysconfig/ggrelay

	# Autodetection idea thx to Krzysztof 'hunter' Drewicz
	[ -z "$EXTERNAL_IFACE" ] && \
		EXTERNAL_IFACE="`ip r s | grep default | awk '{ print $5 }'`"
	
	if [ -z "$EXTERNAL_IFACE" ]; then
		echo $"Couldn't determine external interface, giving up."
		exit 1
	fi

	GGRELAY_PARMS="-d -o $EXTERNAL_IFACE"

	[ -n "$INTERNAL_IFACE" ] && \
		GGRELAY_PARMS="$GGRELAY_PARMS -i $INTERNAL_IFACE"

	[ -n "$RUN_AS" ] && \
		GGRELAY_PARMS="$GGRELAY_PARMS -u $RUN_AS"

	[ -n "$MAX_DCC" ] && \
		GGRELAY_PARMS="$GGRELAY_PARMS -n $MAX_DCC"

	[ -n "$MAX_CONNS" ] && \
		GGRELAY_PARMS="$GGRELAY_PARMS -m $MAX_CONNS"

	for S in $SERVERS; do
		GGRELAY_PARMS="$GGRELAY_PARMS -s $S"
	done

	[ -n "$OTHER_PARMS" ] && \
		GGRELAY_PARMS="$GGRELAY_PARMS $OTHER_PARMS"
}

start() {
    echo -n $"Starting ggrelay: "
	prepare_parms
    daemon ggrelay $GGRELAY_PARMS
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ggrelay
}

stop() {
    echo -n $"Stopping ggrelay: "
    killproc ggrelay
    RETVAL=$?
    echo
    if [ $RETVAL -eq 0 ]; then
        rm -f /var/lock/subsys/ggrelay
    fi
}

# See how we were called.
case "$1" in
    start)
		start
		;;
    stop)
		stop
		;;
    status)
        status ggrelay
		RETVAL=$?
        ;;
    restart)
		stop
		start
		;;
    condrestart)
		if [ -f /var/lock/subsys/ggrelay ]; then
			stop
			start
		fi
		;;
    *)
		echo $"Usage: $0 {start|stop|status|restart|condrestart}"
		;;
esac
exit $RETVAL
