From: Jo-Philipp Wich Date: Sun, 5 Feb 2012 16:09:19 +0000 (+0000) Subject: [packages_10.03.2] smtptrapd: merge r29217 X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;hb=de3a5c195593055f9ce48752bdb145af1e591211 [packages_10.03.2] smtptrapd: merge r29217 SVN-Revision: 30259 --- diff --git a/net/smtptrapd/Makefile b/net/smtptrapd/Makefile index da0dffe24f..5cfd700971 100644 --- a/net/smtptrapd/Makefile +++ b/net/smtptrapd/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2008-2009 OpenWrt.org +# Copyright (C) 2008-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:=smtptrapd PKG_VERSION:=1.5 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/$(PKG_NAME) diff --git a/net/smtptrapd/files/smtptrapd.init b/net/smtptrapd/files/smtptrapd.init index 56e5f97808..53aba97e01 100644 --- a/net/smtptrapd/files/smtptrapd.init +++ b/net/smtptrapd/files/smtptrapd.init @@ -1,11 +1,10 @@ #!/bin/sh /etc/rc.common -# Copyright (C) 2008 OpenWrt.org +# Copyright (C) 2008-2011 OpenWrt.org -START=90 +SERVICE_USE_PID=1 -NAME="smtptrapd" -DAEMON="/usr/sbin/$NAME" -RUN_D="/var/run" +START=90 +STOP=10 EXTRA_COMMANDS="list status exconf" EXTRA_HELP=" list Lists available configurations @@ -17,119 +16,101 @@ globally on all configurations unless the particular configuration has been provided as the next parameter. " -check_req() { - if [ -x "$DAEMON" ]; then - return 0 - else - echo "The daemon binary is missing!" - return 1 - fi -} - check_section() { echo "$1" | grep -vq '^cfg[[:xdigit:]]\{6\}$' } -start_service() { - local cfg="$1" - local named="$2" - check_section "$cfg" || return 1 - [ "$named" != "" -a "$cfg" != "$named" ] && return 0 +start_instance() { + local section="$1" + local instance="$2" + + check_section "$section" || return 1 + [ -n "$instance" -a "$section" != "$instance" ] && return 0 + local args listen_ip banner_host username num_threads listen_port accept_queue_len - config_get listen_ip "$cfg" listen_ip + + config_get listen_ip "$section" 'listen_ip' [ -n "$listen_ip" ] && append args "-l $listen_ip" - config_get listen_port "$cfg" listen_port + + config_get listen_port "$section" 'listen_port' [ -n "$listen_port" ] && append args "-p $listen_port" - config_get username "$cfg" username + + config_get username "$section" 'username' [ -n "$username" ] && append args "-u $username" - config_get banner_host "$cfg" banner_host - [ -n "$banner_host" ] && append args "-b \"$banner_host\"" - config_get num_threads "$cfg" num_threads + + config_get banner_host "$section" 'banner_host' + [ -n "$banner_host" ] && append args "-b '$banner_host'" + + config_get num_threads "$section" 'num_threads' [ -n "$num_threads" ] && append args "-t $num_threads" - config_get accept_queue_len "$cfg" accept_queue_len + + config_get accept_queue_len "$section" 'accept_queue_len' [ -n "$accept_queue_len" ] && append args "-m $accept_queue_len" - append args "-f ${RUN_D}/${NAME}-${cfg}.pid" - eval "$DAEMON $args" + + SERVICE_PID_FILE="/var/run/smtptrapd-${section}.pid + service_start /usr/sbin/smtptrapd -f $SERVICE_PID_FILE $args } -stop_service() { - local cfg="$1" - local named="$2" - check_section "$cfg" || return 1 - [ "$named" != "" -a "$cfg" != "$named" ] && return 0 - local PID_F="${RUN_D}/${NAME}-${cfg}.pid" - [ -f $PID_F ] && { - local ppid=$(cat $PID_F) - ps | grep "^[[:space:]]*$ppid[[:space:]]" | grep -q "[s]mtptrapd\>" && kill $ppid - rm -f $PID_F - } +stop_instance() { + local section="$1" + local instance="$2" + + check_section "$section" || return 1 + [ -n "$instance" -a "$section" != "$instance" ] && return 0 + + SERVICE_PID_FILE="/var/run/smtptrapd-${section}.pid" + service_stop /usr/sbin/smtptrapd } -status_service() { - local cfg="$1" - local named="$2" - check_section "$cfg" || return 1 - [ "$named" != "" -a "$cfg" != "$named" ] && return 0 - local PID_F="${RUN_D}/${NAME}-${cfg}.pid" - [ -f $PID_F ] && { - local ppid=$(cat $PID_F) - if ps | grep "^[[:space:]]*$ppid[[:space:]]" | grep -q "[s]mtptrapd\>"; then - echo "$cfg (pid $ppid) is running" - else - echo "$cfg is not running (stale pid file exists)" - fi +check_instance() { + local section="$1" + local instance="$2" + + check_section "$section" || return 1 + [ -n "$instance" -a "$section" != "$instance" ] && return 0 + + SERVICE_PID_FILE="/var/run/smtptrapd-${section}.pid" + service_check /usr/sbin/smtptrapd && { + echo "${initscript}: configuration instance '$section' is running" + } || { + echo "${initscript}: configuration instance '$section' is not running" } } -list_service() { - local cfg="$1" - check_section "$cfg" || return 1 - echo " $cfg" +list_instance() { + local section="$1" + check_section "$section" || return 1 + echo " $section" } start() { - local svc_cfg="$1" - check_req || return 1 - [ ! -d $RUN_D ] && mkdir -p $RUN_D - config_load "$NAME" - config_foreach start_service "$NAME" "$svc_cfg" + config_load 'smtptrapd' + config_foreach start_instance 'smtptrapd' "$@" } stop() { - local svc_cfg="$1" - check_req || return 1 - config_load "/etc/config/$NAME" - if [ -n "$svc_cfg" ]; then - config_foreach stop_service "$NAME" "$svc_cfg" - else - config_foreach stop_service "$NAME" - local pf - for pf in $(ls ${RUN_D}/${NAME}*.pid 2>/dev/null); do - local ppid=$(cat $pf) - ps | grep "^[[:space:]]*$ppid[[:space:]]" | grep -q "[s]mtptrapd\>" && kill "$ppid" - rm -f $pf - done - fi + config_load 'smtptrapd' + config_foreach stop_instance 'smtptrapd' "$@" } status() { - local svc_cfg="$1" - check_req || return 1 - config_load "$NAME" - config_foreach status_service "$NAME" "$svc_cfg" + config_load 'smtptrapd' + config_foreach check_instance 'smtptrapd' "$@" } list() { - check_req || return 1 - echo "Available $NAME configurations:" - config_load "$NAME" - config_foreach list_service "$NAME" + config_load 'smtptrapd' + echo "${initscript}: available configuration instances:" + config_foreach list_instance 'smtptrapd' } exconf() { - echo "An example configuration in /etc/config/$NAME:" >&2 cat <