From: Nicolas Thill Date: Mon, 14 Nov 2011 02:38:54 +0000 (+0000) Subject: packages/softflowd: use new service functions, use softflowctl to stop softflowd... X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=3ef855caaa26abc9bd105c0923a5905528cddaec packages/softflowd: use new service functions, use softflowctl to stop softflowd via control socket SVN-Revision: 29100 --- diff --git a/net/softflowd/Makefile b/net/softflowd/Makefile index f6c45fe783..15f3e566e8 100644 --- a/net/softflowd/Makefile +++ b/net/softflowd/Makefile @@ -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/ diff --git a/net/softflowd/files/softflowd.config b/net/softflowd/files/softflowd.config index 974d99e716..6fe5a3e0a8 100644 --- a/net/softflowd/files/softflowd.config +++ b/net/softflowd/files/softflowd.config @@ -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' diff --git a/net/softflowd/files/softflowd.init b/net/softflowd/files/softflowd.init index 4fbb87547a..4beddc0795 100644 --- a/net/softflowd/files/softflowd.init +++ b/net/softflowd/files/softflowd.init @@ -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 }