packages/softflowd: use new service functions, use softflowctl to stop softflowd via control socket
git-svn-id: svn://svn.openwrt.org/openwrt/packages@29100 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
a5c9c3954d
commit
df0ba0eaf4
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2007 OpenWrt.org
|
||||
# Copyright (C) 2007-2011 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=softflowd
|
||||
PKG_VERSION:=0.9.8
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://www.mindrot.org/files/softflowd/
|
||||
|
@ -1,4 +1,5 @@
|
||||
config softflowd
|
||||
option enabled '0'
|
||||
option interface 'br-lan'
|
||||
option pcap_file ''
|
||||
option timeout ''
|
||||
@ -10,4 +11,3 @@ config softflowd
|
||||
option hoplimit ''
|
||||
option tracking_level 'full'
|
||||
option track_ipv6 '0'
|
||||
option enabled '0'
|
||||
|
@ -1,10 +1,7 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2007 OpenWrt.org
|
||||
START=50
|
||||
# Copyright (C) 2007-2011 OpenWrt.org
|
||||
|
||||
NAME=softflowd
|
||||
BIN_F=/usr/sbin/$NAME
|
||||
SSD=start-stop-daemon
|
||||
START=50
|
||||
|
||||
append_bool() {
|
||||
local section="$1"
|
||||
@ -24,43 +21,53 @@ append_string() {
|
||||
[ -n "$_val" ] && append args "$3 $_val"
|
||||
}
|
||||
|
||||
start_service() {
|
||||
start_instance() {
|
||||
local section="$1"
|
||||
args=""
|
||||
|
||||
append_string "$section" interface "-i"
|
||||
append_string "$section" pcap_file "-r"
|
||||
append_string "$section" timeout "-t"
|
||||
append_string "$section" max_flows "-m"
|
||||
append_string "$section" host_port "-n"
|
||||
append_string "$section" pid_file "-p"
|
||||
append_string "$section" control_socket "-c"
|
||||
append_string "$section" export_version "-v"
|
||||
append_string "$section" hoplimit "-L"
|
||||
append_string "$section" tracking_level "-T"
|
||||
append_bool "$section" track_ipv6 "-6"
|
||||
config_get_bool "enabled" "$section" "enabled" '1'
|
||||
[ "$enabled" -gt 0 ] && $BIN_F $args
|
||||
config_get_bool enabled "$section" 'enabled' '0'
|
||||
[ $enabled -gt 0 ] || return 1
|
||||
|
||||
config_get pid_file "$section" 'pid_file'
|
||||
|
||||
args=""
|
||||
append_string "$section" 'interface' '-i'
|
||||
append_string "$section" 'pcap_file' '-r'
|
||||
append_string "$section" 'timeout' '-t'
|
||||
append_string "$section" 'max_flows' '-m'
|
||||
append_string "$section" 'host_port' '-n'
|
||||
append_string "$section" 'pid_file' '-p'
|
||||
append_string "$section" 'control_socket' '-c'
|
||||
append_string "$section" 'export_version' '-v'
|
||||
append_string "$section" 'hoplimit' '-L'
|
||||
append_string "$section" 'tracking_level' '-T'
|
||||
append_bool "$section" track_ipv6 '-6'
|
||||
|
||||
SERVICE_PID_FILE="$pid_file" \
|
||||
service_start /usr/sbin/softflowd $args${pid_file:+ -p $pid_file}
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
stop_instance() {
|
||||
local section="$1"
|
||||
config_get pidfile "$section" pid_file
|
||||
config_get control_socket "$section" control_socket
|
||||
|
||||
[ -n "$pid_file" ] || pid_file="$pidfile"
|
||||
# FIXME
|
||||
$SSD -K -p $pid_file -q && rm -f $control_socket
|
||||
config_get_bool enabled "$section" 'enabled' '0'
|
||||
[ $enabled -gt 0 ] || return 1
|
||||
|
||||
config_get control_socket "$section" 'control_socket'
|
||||
|
||||
[ -n "control_socket" -a -S $control_socket ] && {
|
||||
/usr/sbin/softflowctl -c $control_socket exit
|
||||
}
|
||||
}
|
||||
|
||||
start() {
|
||||
mkdir -p /var/empty
|
||||
mkdir -m 0755 -p /var/empty
|
||||
|
||||
config_load $NAME
|
||||
config_foreach start_service $NAME
|
||||
config_load 'softflowd'
|
||||
config_foreach start_instance 'softflowd'
|
||||
}
|
||||
|
||||
stop() {
|
||||
config_load $NAME
|
||||
config_foreach stop_service $NAME
|
||||
config_load 'softflowd'
|
||||
config_foreach stop_instance 'softflowd'
|
||||
service_stop /usr/sbin/softflowd
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user