packages/quicktun: use new service functions, change 'enable' option to 'enabled' like most other services are using

git-svn-id: svn://svn.openwrt.org/openwrt/packages@29168 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nico 2011-11-16 09:44:02 +00:00
parent d8e3724a5e
commit a04d81a40e
3 changed files with 49 additions and 48 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=quicktun PKG_NAME:=quicktun
PKG_VERSION:=2.1.7 PKG_VERSION:=2.1.7
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=http://oss.ucis.nl/quicktun/src PKG_SOURCE_URL:=http://oss.ucis.nl/quicktun/src

View File

@ -3,7 +3,7 @@ package quicktun
config quicktun sample_config config quicktun sample_config
# Set to 1 to enable this instance: # Set to 1 to enable this instance:
option enable 0 option enabled 0
# IP address or hostname of the local end, optional # IP address or hostname of the local end, optional
# option local_address 0.0.0.0 # option local_address 0.0.0.0

View File

@ -1,12 +1,15 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Quicktun init script # Copyright (C) 2010-2011 OpenWrt.org
# Partly taken the the OpenVPN init script (Copyright (C) 2008 Jo-Philipp Wich)
# Partly taken the OpenVPN init script (Copyright (C) 2008 Jo-Philipp Wich)
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
START=95 START=95
BIN=/usr/sbin/quicktun
SSD=start-stop-daemon SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
EXTRA_COMMANDS="up down" EXTRA_COMMANDS="up down"
LIST_SEP=" LIST_SEP="
@ -27,25 +30,31 @@ append_opts() {
done done
} }
start_service() { section_enabled() {
config_get_bool enabled "$1" 'enabled' 0
[ $enabled -gt 0 ]
}
error() {
echo "${initscript}:" "$@" 1>&2
}
start_instance() {
local s="$1" local s="$1"
local enable=0
# disabled? section_enabled "$s" || return 1
config_get_bool enable "$s" enable 0
[ "$enable" == 0 ] && return 0
PID="/var/run/quicktun-$s.pid" SERVICE_PID_FILE="/var/run/quicktun-$s.pid"
OPTS="" OPTS=""
config_get interface "$s" interface config_get interface "$s" interface
if [ -z "$interface" ]; then if [ -z "$interface" ]; then
echo "$s: interface not set" error "$s: interface '$interface' is not set"
return 1 return 1
fi fi
if ifconfig "$interface" >/dev/null 2>&1; then if ifconfig "$interface" &>/dev/null; then
echo "$s: interface $interface is already in use" error "$s: interface '$interface' is already in use"
return 1 return 1
fi fi
@ -58,11 +67,11 @@ start_service() {
config_get_bool remote_float "$s" remote_float 0 config_get_bool remote_float "$s" remote_float 0
[ "$remote_float" == 1 ] && append_opt remote_float 1 [ "$remote_float" == 1 ] && append_opt remote_float 1
eval env $OPTS "$SSD" -q -b -p "$PID" -m -x "$BIN" -S eval env $OPTS service_start /usr/sbin/quicktun
while ! ifconfig "$interface" >/dev/null 2>&1; do while ! ifconfig "$interface" >/dev/null 2>&1; do
if ! $SSD -t -q -p $PID -x $BIN -K; then if ! service_check /usr/sbin/quicktun; then
echo "$s: daemon startup failed" error "$s: startup failed"
return 1 return 1
fi fi
@ -73,68 +82,60 @@ start_service() {
[ -n "$up" ] && sh -c "$up" - "$interface" [ -n "$up" ] && sh -c "$up" - "$interface"
} }
stop_service() { stop_instance() {
local s="$1" local s="$1"
local enable=0
# disabled? section_enabled "$s" || return 1
config_get_bool enable "$s" enable 0
[ "$enable" == 0 ] && return 0 SERVICE_PID_FILE="/var/run/quicktun-$s.pid"
config_get interface "$s" interface config_get interface "$s" interface
if [ -z "$interface" ]; then if [ -z "$interface" ]; then
echo "$s: interface not set" error "$s: interface '$interface' is not set"
return 1 return 1
fi fi
if ! ifconfig "$interface" >/dev/null 2>&1; then if ! ifconfig "$interface" &>/dev/null; then
echo "$s: interface $interface does not exist" error "$s: interface '$interface' does not exist"
return 1 return 1
fi fi
config_get down "$s" down config_get down "$s" down
[ -n "$down" ] && sh -c "$down" - "$interface" [ -n "$down" ] && sh -c "$down" - "$interface"
PID="/var/run/quicktun-$s.pid" service_stop /usr/sbin/quicktun
$SSD -q -p $PID -x $BIN -K
rm -f "$PID"
} }
start() { start() {
config_load quicktun config_load 'quicktun'
config_foreach start_service quicktun config_foreach start_instance 'quicktun'
} }
stop() { stop() {
config_load quicktun config_load 'quicktun'
config_foreach stop_service quicktun config_foreach stop_instance 'quicktun'
}
restart() {
stop; start
} }
up() { up() {
local exists local exists
local INSTANCE local instance
config_load quicktun config_load 'quicktun'
for INSTANCE in "$@"; do for instance in "$@"; do
config_get exists "$INSTANCE" TYPE config_get exists "$instance" 'TYPE'
if [ "$exists" == "quicktun" ]; then if [ "$exists" == "quicktun" ]; then
start_service "$INSTANCE" start_instance "$instance"
fi fi
done done
} }
down() { down() {
local exists local exists
local INSTANCE local instance
config_load quicktun config_load 'quicktun'
for INSTANCE in "$@"; do for instance in "$@"; do
config_get exists "$INSTANCE" TYPE config_get exists "$instance" 'TYPE'
if [ "$exists" == "quicktun" ]; then if [ "$exists" == "quicktun" ]; then
stop_service "$INSTANCE" stop_instance "$instance"
fi fi
done done
} }