#
-# 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.
PKG_NAME:=softflowd
PKG_VERSION:=0.9.8
-PKG_RELEASE:=1
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.mindrot.org/files/softflowd/
$(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
endef
+define Package/softflowd/conffiles
+/etc/config/softflowd
+endef
+
$(eval $(call BuildPackage,softflowd))
#!/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"
[ -n "$_val" ] && append args "$3 $_val"
}
-start_service() {
+start_instance() {
local section="$1"
+
+ 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'
- 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
+ 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
}