Changeset 34867


Ignore:
Timestamp:
2012-12-22T19:56:13+01:00 (3 years ago)
Author:
nbd
Message:

dropbear: convert init script to procd

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/network/services/dropbear/files/dropbear.init

    r34863 r34867  
    66STOP=50 
    77 
    8 SERVICE_USE_PID=1 
     8USE_PROCD=1 
    99 
    1010NAME=dropbear 
     
    1414EXTRA_HELP="    killclients Kill ${NAME} processes except servers and yourself" 
    1515 
    16 dropbear_start() 
     16dropbear_instance() 
    1717{ 
    1818        append_ports() 
     
    2222 
    2323                grep -qs "^ *$ifname:" /proc/net/dev || { 
    24                         append args "-p $port" 
     24                        procd_append_param command -p "$port" 
    2525                        return 
    2626                } 
     
    3232                        ' 
    3333                ); do 
    34                         append args "-p $addr:$port" 
     34                        procd_append_param command -p "$addr:$port" 
    3535                done 
    3636        } 
     
    4444        [ "${enabled}" -eq 0 ] && return 1 
    4545 
    46         # verbose parameter 
    47         local verbosed 
    48         config_get_bool verbosed "${section}" verbose 0 
    49  
    5046        # increase pid file count to handle multiple instances correctly 
    5147        PIDCOUNT="$(( ${PIDCOUNT} + 1))" 
    5248 
     49        local pid_file="/var/run/${NAME}.${PIDCOUNT}.pid" 
     50 
     51        procd_open_instance 
     52        procd_set_param command "$PROG" -F -P "$pid_file" 
     53 
    5354        # prepare parameters (initialise with pid file) 
    54         local pid_file="/var/run/${NAME}.${PIDCOUNT}.pid" 
    55         local args="-P $pid_file" 
    5655        local val 
     56 
    5757        # A) password authentication 
    5858        config_get_bool val "${section}" PasswordAuth 1 
    59         [ "${val}" -eq 0 ] && append args "-s" 
     59        [ "${val}" -eq 0 ] && procd_append_param command -s 
     60 
    6061        # B) listen interface and port 
    6162        local port 
     
    6768        # C) banner file 
    6869        config_get val "${section}" BannerFile 
    69         [ -f "${val}" ] && append args "-b ${val}" 
     70        [ -f "${val}" ] && procd_append_param command -b "${val}" 
    7071        # D) gatewayports 
    7172        config_get_bool val "${section}" GatewayPorts 0 
    72         [ "${val}" -eq 1 ] && append args "-a" 
     73        [ "${val}" -eq 1 ] && procd_append_param command -a 
    7374        # E) root password authentication 
    7475        config_get_bool val "${section}" RootPasswordAuth 1 
    75         [ "${val}" -eq 0 ] && append args "-g" 
     76        [ "${val}" -eq 0 ] && procd_append_param command -g 
    7677        # F) root login 
    7778        config_get_bool val "${section}" RootLogin 1 
    78         [ "${val}" -eq 0 ] && append args "-w" 
     79        [ "${val}" -eq 0 ] && procd_append_param command -w 
    7980        # G) host keys 
    8081        config_get val "${section}" rsakeyfile 
    81         [ -f "${val}" ] && append args "-r ${val}" 
     82        [ -f "${val}" ] && procd_append_param command -r "${val}" 
    8283        config_get val "${section}" dsskeyfile 
    83         [ -f "${val}" ] && append args "-d ${val}" 
     84        [ -f "${val}" ] && procd_append_param command -d "${val}" 
    8485 
    85         # execute program and return its exit code 
    86         [ "${verbosed}" -ne 0 ] && echo "${initscript}: section ${section} starting ${PROG} ${args}" 
    87         SERVICE_PID_FILE="$pid_file" service_start ${PROG} ${args} 
     86        procd_close_instance 
    8887} 
    8988 
     
    111110} 
    112111 
    113 start() 
     112start_service() 
    114113{ 
    115114        [ -s /etc/dropbear/dropbear_rsa_host_key -a \ 
     
    120119 
    121120        config_load "${NAME}" 
    122         config_foreach dropbear_start dropbear 
    123 } 
    124  
    125 stop() 
    126 { 
    127         local pid_file pid_files 
    128          
    129         pid_files=`ls /var/run/${NAME}.*.pid 2>/dev/null` 
    130          
    131         [ -z "$pid_files" ] && return 1 
    132          
    133         for pid_file in $pid_files; do 
    134                 SERVICE_PID_FILE="$pid_file" service_stop ${PROG} && { 
    135                         rm -f ${pid_file} 
    136                 } 
    137         done 
     121        config_foreach dropbear_instance dropbear 
    138122} 
    139123 
Note: See TracChangeset for help on using the changeset viewer.