#!/bin/sh
# ss5		This shell script takes care of starting and stopping
#		SS5 SOCKS proxy
#
# chkconfig: 345 20 80
# description: This script takes care of starting \
#              and stopping ss5
#
# pidfile: /var/run/ss5.pid
# config: /etc/ss5/ss5.conf


### BEGIN INIT INFO
# Provides: ss5
# Required-Start: $network
# Required-Stop: $network
# Should-Start: $named 
# Should-Stop: $named 
# Short-Description: Starts the ss5 daemon
# Description: SS5 is a full-featured SOCKS4/5
#              
### END INIT INFO


OS=`uname -s`
if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then
 
# Source function library.
 . /etc/rc.d/init.d/functions

# Source networking configuration.
 . /etc/sysconfig/network

# Check that networking is up.
 [ ${NETWORKING} = "no" ] && exit 0

 [ -f /usr/sbin/ss5 ] || exit 0
fi

# Test custom variables
test -f /etc/sysconfig/ss5 && . /etc/sysconfig/ss5

# See how we were called.
case "$1" in
  start)
        # Start daemon.
        gprintf "Starting ss5... "
	if [ $OS = "Linux" ]; then
            daemon /usr/sbin/ss5 -t $SS5_OPTS
            touch /var/lock/subsys/ss5
	else
	  if [ $OS = "SunOS" ]; then
              /usr/sbin/ss5 -t 
              touch /var/lock/subsys/ss5
	  else
              /usr/local/sbin/ss5 -t 
	  fi
	fi
	gprintf "done\n"
        ;;
  stop)
        # Stop daemon.
        gprintf "Shutting down ss5... \n"
	if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then
	killproc ss5
        rm -f /var/lock/subsys/ss5
	else
		killall ss5
	fi
        rm -f /var/run/ss5/ss5.pid
	gprintf "done\n"
        ;;
  reload)
        # Reload configuration
	if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then
        gprintf "Reloading ss5... "
	killproc ss5 -1
	else
		pkill -HUP ss5
	fi
	gprintf "done reload\n"
	;;
  restart)
        # Restart daemon
        gprintf "Restarting ss5... "
	$0 stop
	$0 start
	;;
  status)
	if [ $OS = "Linux" ] || [ $OS = "SunOS" ]; then
	  status ss5
	fi
	;;
  *)
        gprintf "Usage: ss5 {start|stop|status|restart|reload}\n"
        exit 1
	;;
esac

exit 0
