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

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

File:
1 edited

Legend:

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

    r29137 r29166  
    11#!/bin/sh /etc/rc.common 
    2 # Tinc init script 
     2# Copyright (C) 2011 OpenWrt.org 
    33# Copyright (C) 2011 Linus LÃŒssing 
    44#  Based on Jo-Philipp Wich's OpenVPN init script 
     
    77 
    88START=42 
     9 
     10SERVICE_USE_PID=1 
     11 
    912BIN=/usr/sbin/tincd 
    10 SSD=start-stop-daemon 
    1113EXTRA_COMMANDS="up down" 
    1214 
     
    6567} 
    6668 
     69section_enabled() { 
     70        config_get_bool enabled "$1" 'enabled' 0 
     71        [ $enabled -gt 0 ] 
     72} 
     73 
    6774prepare_host() { 
    68         local s="$1"; local n 
    69         local disabled=0 
     75        local s="$1" 
     76        local n 
    7077 
    7178        # net disabled? 
    7279        config_get n "$s" net 
    73         config_get_bool disabled "$n" disabled 0 
    74         [ "$disabled" == 1 ] && return 0 
     80        section_enabled "$n" || return 1 
    7581 
    7682        if [ "$#" = "2" ]; then 
    77                 [ "$2" != "$n" ] && return 0 
     83                [ "$2" != "$n" ] && return 1 
    7884        fi 
    7985 
    8086        # host disabled? 
    81         config_get_bool disabled "$s" disabled 0 
    82         [ "$disabled" == 1 ] && { 
     87        section_enabled "$s" || { 
    8388                [ -f "$TMP_TINC/$n/hosts/$s" ] && rm "$TMP_TINC/$n/hosts/$s" 
    84                 return 0 
     89                return 1 
    8590        } 
    8691 
     
    8994                echo -n "missing in /etc/tinc/$n/hosts/$s, " 
    9095                echo "skipping configuration of $s" 
    91                 return 0 
     96                return 1 
    9297        } 
    9398 
     
    126131prepare_net() { 
    127132        local s="$1" 
    128         local disabled=0 
    129133        local n 
    130134 
    131         # disabled? 
    132         config_get_bool disabled "$s" disabled 0 
    133         [ "$disabled" == 1 ] && return 0 
     135        section_enabled "$s" || return 1 
    134136 
    135137        [ ! -d "$TMP_TINC/$s" ] && mkdir -p "$TMP_TINC/$s" 
     
    153155} 
    154156 
    155 start_net() { 
    156         local s="$1" 
    157         local disabled=0 
    158  
    159         # disabled? 
    160         config_get_bool disabled "$s" disabled 0 
    161         [ "$disabled" == 1 ] && return 0 
    162  
    163         PID="/var/run/tinc.$s.pid" 
     157start_instance() { 
     158        local s="$1" 
     159 
     160        section_enabled "$s" || return 1 
     161 
    164162        ARGS="" 
    165163 
    166164        # append params 
    167         append_params "$s" \ 
    168                 log debug 
    169  
    170         $BIN -c "$TMP_TINC/$s" -n $s $ARGS --pidfile="$PID" 
    171 } 
    172  
    173 kill_net() { 
    174         local s="$1" 
    175         local S="${2:-TERM}" 
    176         local disabled=0 
    177  
    178         # disabled? 
    179         config_get_bool disabled "$s" disabled 0 
    180         [ "$disabled" == 0 ] || [ "$S" == "TERM" ] || return 0 
    181  
    182         PID="/var/run/tinc.$s.pid" 
    183  
    184         $SSD -q -p $PID -x $BIN -K -s $S 
    185         [ "$S" == "TERM" ] && { 
    186                 rm -f "$PID" 
    187                 [ -n "$s" ] && rm -rf "$TMP_TINC/$s" 
    188         } 
    189 } 
    190  
    191 hup_net()  { kill_net "$1" HUP;  } 
    192 stop_net() { kill_net "$1" TERM; } 
     165        append_params "$s" log debug 
     166 
     167        SERVICE_PID_FILE="/var/run/tinc.$s.pid" \ 
     168        service_start $BIN -c "$TMP_TINC/$s" -n $s $ARGS --pidfile="$PID" 
     169} 
     170 
     171stop_instance() { 
     172        local s="$1" 
     173 
     174        section_enabled "$s" || return 1 
     175 
     176        SERVICE_PID_FILE="/var/run/tinc.$s.pid" \ 
     177        service_stop $BIN 
     178} 
     179 
     180reload_instance() { 
     181        local s="$1" 
     182 
     183        section_enabled "$s" || return 1 
     184 
     185        SERVICE_PID_FILE="/var/run/tinc.$s.pid" \ 
     186        service_reload $BIN 
     187} 
    193188 
    194189start() { 
    195         config_load tinc 
    196  
    197         config_foreach prepare_net tinc-net 
    198         config_foreach prepare_host tinc-host 
    199  
    200         config_foreach start_net tinc-net 
     190        config_load 'tinc' 
     191 
     192        config_foreach prepare_net 'tinc-net' 
     193        config_foreach prepare_host 'tinc-host' 
     194 
     195        config_foreach start_instance 'tinc-net' 
    201196} 
    202197 
    203198stop() { 
    204         config_load tinc 
    205         config_foreach stop_net tinc-net 
     199        config_load 'tinc' 
     200        config_foreach stop_instance 'tinc-net' 
    206201} 
    207202 
    208203reload() { 
    209         config_load tinc 
    210         config_foreach hup_net tinc-net 
    211 } 
    212  
    213 restart() { 
    214         stop; sleep 5; start 
     204        config_load 'tinc' 
     205        config_foreach reload_instance 'tinc-net' 
    215206} 
    216207 
    217208up() { 
    218209        local exists 
    219         local INSTANCE 
    220         config_load tinc 
    221         for INSTANCE in "$@"; do 
    222                 config_get exists "$INSTANCE" TYPE 
     210        local instance 
     211        config_load 'tinc' 
     212        for instance in "$@"; do 
     213                config_get exists "$instance" 'TYPE' 
    223214                if [ "$exists" == "tinc-net" ]; then 
    224                         prepare_net "$INSTANCE" 
    225                         config_foreach prepare_host tinc-host "$INSTANCE" 
    226                         start_net "$INSTANCE" 
     215                        prepare_net "$instance" 
     216                        config_foreach prepare_host 'tinc-host' "$instance" 
     217                        start_instance "$instance" 
    227218                fi 
    228219        done 
     
    231222down() { 
    232223        local exists 
    233         local INSTANCE 
    234         config_load tinc 
    235         for INSTANCE in "$@"; do 
    236                 config_get exists "$INSTANCE" TYPE 
     224        local instance 
     225        config_load 'tinc' 
     226        for instance in "$@"; do 
     227                config_get exists "$instance" 'TYPE' 
    237228                if [ "$exists" == "tinc-net" ]; then 
    238                         stop_net "$INSTANCE" 
     229                        stop_instance "$instance" 
    239230                fi 
    240231        done 
Note: See TracChangeset for help on using the changeset viewer.