Ignore:
Timestamp:
2011-11-16T10:44:00+01:00 (5 years ago)
Author:
nico
Message:

packages/openvpn: use new service functions, change 'enable' option to 'enabled' like most other services are using

File:
1 edited

Legend:

Unmodified
Added
Removed
  • packages/net/openvpn/files/openvpn.init

    r26881 r29167  
    11#!/bin/sh /etc/rc.common 
    2 # OpenVPN init script 
     2# Copyright (C) 2008-2011 OpenWrt.org 
    33# Copyright (C) 2008 Jo-Philipp Wich 
    44# This is free software, licensed under the GNU General Public License v2. 
     
    66 
    77START=95 
    8 BIN=/usr/sbin/openvpn 
    9 SSD=start-stop-daemon 
     8 
     9SERVICE_DAEMONIZE=1 
     10SERVICE_WRITE_PID=1 
     11 
    1012EXTRA_COMMANDS="up down" 
    1113 
     
    5658} 
    5759 
    58 start_service() { 
     60section_enabled() { 
     61        config_get_bool enabled "$1" 'enabled' 0 
     62        [ $enabled -gt 0 ] 
     63} 
     64 
     65start_instance() { 
    5966        local s="$1" 
    60         local enable=0 
    6167 
    62         # disabled? 
    63         config_get_bool enable "$s" enable 0 
    64         [ "$enable" == 0 ] && return 0 
     68        section_enabled "$s" || return 1 
    6569 
    66         PID="/var/run/openvpn-$s.pid" 
    6770        ARGS="" 
    6871 
     
    105108 
    106109 
    107         [ -n "$ARGS" ] && \ 
    108                 eval "$SSD -q -b -p '$PID' -x $BIN -S -- --syslog 'openvpn($s)' --writepid '$PID' $ARGS" 
     110        SERVICE_PID_FILE="/var/run/openvpn-$s.pid" \ 
     111        service_start /usr/sbin/openvpn --syslog "openvpn($s)" --writepid "$SERVICE_PID_FILE" $ARGS 
    109112} 
    110113 
    111 kill_service() { 
     114stop_instance() { 
    112115        local s="$1" 
    113         local S="${2:-TERM}" 
    114         local enable=0 
    115116 
    116         # disabled? 
    117         config_get_bool enable "$s" enable 0 
    118         [ "$enable" == 1 ] || [ "$S" == "TERM" ] || return 0 
     117        section_enabled "$s" || return 1 
    119118 
    120         PID="/var/run/openvpn-$s.pid" 
    121  
    122         $SSD -q -p $PID -x $BIN -K -s $S 
    123         [ "$S" == "TERM" ] && rm -f "$PID" 
     119        SERVICE_PID_FILE="/var/run/openvpn-$s.pid" \ 
     120        service_stop /usr/sbin/openvpn 
    124121} 
    125122 
    126 hup_service()  { kill_service "$1" HUP;  } 
    127 stop_service() { kill_service "$1" TERM; } 
     123reload_instance() { 
     124        local s="$1" 
     125 
     126        section_enabled "$s" || return 1 
     127 
     128        SERVICE_PID_FILE="/var/run/openvpn-$s.pid" \ 
     129        service_reload /usr/sbin/openvpn 
     130} 
    128131 
    129132start() { 
    130         config_load openvpn 
    131         config_foreach start_service openvpn 
     133        config_load 'openvpn' 
     134        config_foreach start_instance 'openvpn' 
    132135} 
    133136 
    134137stop() { 
    135         config_load openvpn 
    136         config_foreach stop_service openvpn 
     138        config_load 'openvpn' 
     139        config_foreach stop_instance 'openvpn' 
    137140} 
    138141 
    139142reload() { 
    140         config_load openvpn 
    141         config_foreach hup_service openvpn 
    142 } 
    143  
    144 restart() { 
    145         stop; sleep 5; start 
     143        config_load 'openvpn' 
     144        config_foreach reload_instance 'openvpn' 
    146145} 
    147146 
    148147up() { 
    149148        local exists 
    150         local INSTANCE 
    151         config_load openvpn 
    152         for INSTANCE in "$@"; do 
    153                 config_get exists "$INSTANCE" TYPE 
     149        local instance 
     150        config_load 'openvpn' 
     151        for instance in "$@"; do 
     152                config_get exists "$instance" 'TYPE' 
    154153                if [ "$exists" == "openvpn" ]; then 
    155                         start_service "$INSTANCE" 
     154                        start_instance "$instance" 
    156155                fi 
    157156        done 
     
    160159down() { 
    161160        local exists 
    162         local INSTANCE 
    163         config_load openvpn 
    164         for INSTANCE in "$@"; do 
    165                 config_get exists "$INSTANCE" TYPE 
     161        local instance 
     162        config_load 'openvpn' 
     163        for instance in "$@"; do 
     164                config_get exists "$instance" 'TYPE' 
    166165                if [ "$exists" == "openvpn" ]; then 
    167                         stop_service "$INSTANCE" 
     166                        stop_instance "$instance" 
    168167                fi 
    169168        done 
Note: See TracChangeset for help on using the changeset viewer.