packages/softflowd: use new service functions, use softflowctl to stop softflowd...
authorNicolas Thill <nico@openwrt.org>
Mon, 14 Nov 2011 02:38:54 +0000 (02:38 +0000)
committerNicolas Thill <nico@openwrt.org>
Mon, 14 Nov 2011 02:38:54 +0000 (02:38 +0000)
SVN-Revision: 29100

net/softflowd/Makefile
net/softflowd/files/softflowd.config
net/softflowd/files/softflowd.init

index f6c45fe783b1f4f4c53a88a07d4b529d6062f5ca..15f3e566e8eaf899e5b91c2c7dc22bff3ea8d769 100644 (file)
@@ -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/
index 974d99e71636521e218d45e1268365c0a6826e8f..6fe5a3e0a8e63fd7f0996f93661ceaff89f08046 100644 (file)
@@ -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'
index 4fbb87547aff7ec46cb117d7d153414bc2daeeda..4beddc0795a2e031862969ff6e4db359f5d16513 100644 (file)
@@ -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"
+
+       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
 }