lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

pppoe-relay.init (2076B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2006-2011 OpenWrt.org
      3 
      4 START=50
      5 USE_PROCD=1
      6 
      7 pppoe_triggers() {
      8     local cfg="$1"
      9     local interface server_interfaces client_interfaces both_interfaces
     10     config_get server_interfaces "$cfg" server_interface
     11     config_get client_interfaces "$cfg" client_interface
     12     config_get both_interfaces "$cfg" both_interfaces
     13     for interface in $server_interfaces; do
     14 	append interfaces "$interface" "|"
     15     done
     16     for interface in $client_interfaces; do
     17 	append interfaces "$interface" "|"
     18     done
     19     for interface in $both_interfaces; do
     20 	append interfaces "$interface" "|"
     21     done
     22 }
     23 
     24 pppoe_relay_instance() {
     25     local cfg="$1"
     26     local interface server_interfaces client_interfaces both_interfaces maxsessions timeout OPTIONS
     27     config_get server_interfaces "$cfg" server_interface
     28     config_get client_interfaces "$cfg" client_interface
     29     config_get both_interfaces "$cfg" both_interfaces
     30     config_get maxsessions "$cfg" maxsesssions
     31     config_get timeout "$cfg" timeout
     32     config_get_bool use_non_uci_config "$cfg" use_non_uci_config 0
     33 
     34     if [ "$use_non_uci_config" -gt 0 ]; then
     35 	. /etc/default/pppoe-relay
     36     else
     37 	[ -z "${server_interfaces}${client_interfaces}${both_interfaces}" ] && return 1
     38 	for interface in $server_interfaces; do
     39 	    append OPTIONS "-S $interface"
     40 	done
     41 	for interface in $client_interfaces; do
     42 	    append OPTIONS "-C $interface"
     43         done
     44 	for interface in $both_interfaces; do
     45 	    append OPTIONS "-B $interface"
     46 	done
     47 	[ -n "$maxsesssions" ] && append OPTIONS "-n $maxsesssions"
     48 	[ -n "$timeout" ] && append OPTIONS "-i $timeout"
     49     fi
     50 
     51     procd_open_instance
     52     procd_set_param command /usr/sbin/pppoe-relay -F
     53     procd_append_param command $OPTIONS
     54     procd_close_instance
     55 }
     56 
     57 start_service() {
     58 	local use_non_uci_config
     59 
     60 	config_load pppoe
     61 	config_foreach pppoe_relay_instance pppoe_relay
     62 }
     63 
     64 reload_triggers() {
     65 	local interfaces
     66 
     67 	config_load pppoe
     68 	config_foreach pppoe_triggers pppoe_relay
     69 
     70 	procd_add_reload_trigger "pppoe"
     71 	procd_add_interface_trigger "$interfaces"
     72 }