From d11237aa367a0dbe9c208cb727dd6a20caff45e8 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Wed, 10 Feb 2010 00:34:32 +0000
Subject: [package] dropbear: performance improvements in init script, quiet
 mode for start-stop-daemon - patch by Matthias Buecher <mail@maddes.net>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19569 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/dropbear/files/dropbear.init | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

(limited to 'package/dropbear/files')

diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init
index 4ee130c3a5..85a90d02fd 100755
--- a/package/dropbear/files/dropbear.init
+++ b/package/dropbear/files/dropbear.init
@@ -1,5 +1,5 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2006-2009 OpenWrt.org
+# Copyright (C) 2006-2010 OpenWrt.org
 # Copyright (C) 2006 Carlos Sobrinho
 
 NAME=dropbear
@@ -91,7 +91,7 @@ stop()
 	local pidfile
 	for pidfile in `ls /var/run/${NAME}.*.pid`
 	 do
-		start-stop-daemon -K -s KILL -p "${pidfile}" -n "${NAME}" >/dev/null
+		start-stop-daemon -q -K -s KILL -p "${pidfile}" -n "${NAME}"
 		rm -f "${pidfile}"
 	done
 	[ -z "${pidfile}" ] && echo "${initscript}: no pid files, if you get problems with start then try killclients"
@@ -112,12 +112,10 @@ killclients()
 		[ "${pid}" -eq 0 ] && break
 
 		# check if client connection
-		ps | grep -e "^[ ]*${pid} " | grep "${PROG}" >/dev/null
-		if [ $? -eq 0 ]
-		 then
+		grep -F -q -e "${PROG}" "/proc/${pid}/cmdline" && {
 			append ignore "${pid}"
 			break
-		fi
+		}
 	done
 
 	# get all server pids that should be ignored
@@ -130,9 +128,10 @@ killclients()
 	local skip
 	for pid in `pidof "${NAME}"`
 	 do
-		# check if correct program
-		ps | grep -e "^[ ]*${pid} " | grep "${PROG}" >/dev/null
-		[ $? -ne 0 ] && continue
+		# check if correct program, otherwise process next pid
+		grep -F -q -e "${PROG}" "/proc/${pid}/cmdline" || {
+			continue
+		}
 
 		# check if pid should be ignored (servers, ourself)
 		skip=0
-- 
cgit v1.2.3