Changeset 29217


Ignore:
Timestamp:
2011-11-17T11:47:27+01:00 (6 years ago)
Author:
nico
Message:

packages/smtptrapd: use new service functions

Location:
packages/net/smtptrapd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • packages/net/smtptrapd/Makefile

    r15480 r29217  
    11# 
    2 # Copyright (C) 2008-2009 OpenWrt.org 
     2# Copyright (C) 2008-2011 OpenWrt.org 
    33# 
    44# This is free software, licensed under the GNU General Public License v2. 
     
    1010PKG_NAME:=smtptrapd 
    1111PKG_VERSION:=1.5 
    12 PKG_RELEASE:=1 
     12PKG_RELEASE:=2 
    1313 
    1414PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 
  • packages/net/smtptrapd/files/smtptrapd.init

    r11065 r29217  
    11#!/bin/sh /etc/rc.common 
    2 # Copyright (C) 2008 OpenWrt.org 
     2# Copyright (C) 2008-2011 OpenWrt.org 
     3 
     4SERVICE_USE_PID=1 
    35 
    46START=90 
    5  
    6 NAME="smtptrapd" 
    7 DAEMON="/usr/sbin/$NAME" 
    8 RUN_D="/var/run" 
     7STOP=10 
    98 
    109EXTRA_COMMANDS="list status exconf" 
     
    1817" 
    1918 
    20 check_req() { 
    21         if [ -x "$DAEMON" ]; then 
    22                 return 0 
    23         else 
    24                 echo "The daemon binary is missing!" 
    25                 return 1 
    26         fi 
    27 } 
    28  
    2919check_section() { 
    3020        echo "$1" | grep -vq '^cfg[[:xdigit:]]\{6\}$' 
    3121} 
    3222 
    33 start_service() { 
    34         local cfg="$1" 
    35         local named="$2" 
    36         check_section "$cfg" || return 1 
    37         [ "$named" != "" -a "$cfg" != "$named" ] && return 0 
     23start_instance() { 
     24        local section="$1" 
     25        local instance="$2" 
     26 
     27        check_section "$section" || return 1 
     28        [ -n "$instance" -a "$section" != "$instance" ] && return 0 
     29 
    3830        local args listen_ip banner_host username num_threads listen_port accept_queue_len 
    39         config_get listen_ip "$cfg" listen_ip 
     31 
     32        config_get listen_ip "$section" 'listen_ip' 
    4033        [ -n "$listen_ip" ] && append args "-l $listen_ip" 
    41         config_get listen_port "$cfg" listen_port 
     34 
     35        config_get listen_port "$section" 'listen_port' 
    4236        [ -n "$listen_port" ] && append args "-p $listen_port" 
    43         config_get username "$cfg" username 
     37 
     38        config_get username "$section" 'username' 
    4439        [ -n "$username" ] && append args "-u $username" 
    45         config_get banner_host "$cfg" banner_host 
    46         [ -n "$banner_host" ] && append args "-b \"$banner_host\"" 
    47         config_get num_threads "$cfg" num_threads 
     40 
     41        config_get banner_host "$section" 'banner_host' 
     42        [ -n "$banner_host" ] && append args "-b '$banner_host'" 
     43 
     44        config_get num_threads "$section" 'num_threads' 
    4845        [ -n "$num_threads" ] && append args "-t $num_threads" 
    49         config_get accept_queue_len "$cfg" accept_queue_len 
     46 
     47        config_get accept_queue_len "$section" 'accept_queue_len' 
    5048        [ -n "$accept_queue_len" ] && append args "-m $accept_queue_len" 
    51         append args "-f ${RUN_D}/${NAME}-${cfg}.pid" 
    52         eval "$DAEMON $args" 
     49 
     50        SERVICE_PID_FILE="/var/run/smtptrapd-${section}.pid 
     51        service_start /usr/sbin/smtptrapd -f $SERVICE_PID_FILE $args 
    5352} 
    5453 
    55 stop_service() { 
    56         local cfg="$1" 
    57         local named="$2" 
    58         check_section "$cfg" || return 1 
    59         [ "$named" != "" -a "$cfg" != "$named" ] && return 0 
    60         local PID_F="${RUN_D}/${NAME}-${cfg}.pid" 
    61         [ -f $PID_F ] && { 
    62                 local ppid=$(cat $PID_F) 
    63                 ps | grep "^[[:space:]]*$ppid[[:space:]]" | grep -q "[s]mtptrapd\>" && kill $ppid 
    64                 rm -f $PID_F 
     54stop_instance() { 
     55        local section="$1" 
     56        local instance="$2" 
     57 
     58        check_section "$section" || return 1 
     59        [ -n "$instance" -a "$section" != "$instance" ] && return 0 
     60 
     61        SERVICE_PID_FILE="/var/run/smtptrapd-${section}.pid" 
     62        service_stop /usr/sbin/smtptrapd 
     63} 
     64 
     65check_instance() { 
     66        local section="$1" 
     67        local instance="$2" 
     68 
     69        check_section "$section" || return 1 
     70        [ -n "$instance" -a "$section" != "$instance" ] && return 0 
     71 
     72        SERVICE_PID_FILE="/var/run/smtptrapd-${section}.pid" 
     73        service_check /usr/sbin/smtptrapd && { 
     74                echo "${initscript}: configuration instance '$section' is running" 
     75        } || { 
     76                echo "${initscript}: configuration instance '$section' is not running" 
    6577        } 
    6678} 
    6779 
    68 status_service() { 
    69         local cfg="$1" 
    70         local named="$2" 
    71         check_section "$cfg" || return 1 
    72         [ "$named" != "" -a "$cfg" != "$named" ] && return 0 
    73         local PID_F="${RUN_D}/${NAME}-${cfg}.pid" 
    74         [ -f $PID_F ] && { 
    75                 local ppid=$(cat $PID_F) 
    76                 if ps | grep "^[[:space:]]*$ppid[[:space:]]" | grep -q "[s]mtptrapd\>"; then 
    77                         echo "$cfg (pid $ppid) is running" 
    78                 else 
    79                         echo "$cfg is not running (stale pid file exists)" 
    80                 fi 
    81         } 
    82 } 
    83  
    84 list_service() { 
    85         local cfg="$1" 
    86         check_section "$cfg" || return 1 
    87         echo "  $cfg" 
     80list_instance() { 
     81        local section="$1" 
     82        check_section "$section" || return 1 
     83        echo "  $section" 
    8884} 
    8985 
    9086start() { 
    91         local svc_cfg="$1" 
    92         check_req || return 1 
    93         [ ! -d $RUN_D ] && mkdir -p $RUN_D 
    94         config_load "$NAME" 
    95         config_foreach start_service "$NAME" "$svc_cfg" 
     87        config_load 'smtptrapd' 
     88        config_foreach start_instance 'smtptrapd' "$@" 
    9689} 
    9790 
    9891stop() { 
    99         local svc_cfg="$1" 
    100         check_req || return 1 
    101         config_load "/etc/config/$NAME" 
    102         if [ -n "$svc_cfg" ]; then 
    103                 config_foreach stop_service "$NAME" "$svc_cfg" 
    104         else 
    105                 config_foreach stop_service "$NAME" 
    106                 local pf 
    107                 for pf in $(ls ${RUN_D}/${NAME}*.pid 2>/dev/null); do 
    108                         local ppid=$(cat $pf) 
    109                         ps | grep "^[[:space:]]*$ppid[[:space:]]" | grep -q "[s]mtptrapd\>" && kill "$ppid" 
    110                         rm -f $pf 
    111                 done 
    112         fi 
     92        config_load 'smtptrapd' 
     93        config_foreach stop_instance 'smtptrapd' "$@" 
    11394} 
    11495 
    11596status() { 
    116         local svc_cfg="$1" 
    117         check_req || return 1 
    118         config_load "$NAME" 
    119         config_foreach status_service "$NAME" "$svc_cfg" 
     97        config_load 'smtptrapd' 
     98        config_foreach check_instance 'smtptrapd' "$@" 
    12099} 
    121100 
    122101list() { 
    123         check_req || return 1 
    124         echo "Available $NAME configurations:" 
    125         config_load "$NAME" 
    126         config_foreach list_service "$NAME" 
     102        config_load 'smtptrapd' 
     103        echo "${initscript}: available configuration instances:" 
     104        config_foreach list_instance 'smtptrapd' 
    127105} 
    128106 
    129107exconf() { 
    130         echo "An example configuration in /etc/config/$NAME:" >&2 
    131108        cat <<EOF 
    132 config '$NAME' 'myfailhost' 
     109# /etc/config/smtptrapd - example configuration 
     110 
     111package 'smtptrapd' 
     112 
     113config 'smtptrapd' 'myfailhost' 
    133114        option 'num_threads' '1' 
    134115 
Note: See TracChangeset for help on using the changeset viewer.