pppoe-server.init (2441B)
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 10 config_get interface "$cfg" interface 11 } 12 13 pppoe_instance() { 14 local cfg="$1" 15 local interface ac_name service_names service_name maxsessionsperpeer localip firstremoteip maxsessions optionsfiles randomsession unit offset timeout mss sync OPTIONS 16 config_get interface "$cfg" interface 17 config_get ac_name "$cfg" ac_name 18 config_get service_names "$cfg" service_name 19 config_get maxsessionsperpeer "$cfg" maxsesssionsperpeer 20 config_get localip "$cfg" localip 21 config_get firstremoteip "$cfg" firstremoteip 22 config_get maxsessions "$cfg" maxsessions 23 config_get optionsfile "$cfg" optionsfile 24 config_get_bool randomsession "$cfg" randomsession 1 25 config_get_bool unit "$cfg" unit 0 26 config_get offset "$cfg" offset 27 config_get timeout "$cfg" timeout 28 config_get mss "$cfg" mss 29 config_get_bool sync "$cfg" sync 0 30 config_get use_non_uci_config "$cfg" use_non_uci_config 0 31 32 if [ "$use_non_uci_config" -gt 0 ]; then 33 . /etc/default/pppoe-server 34 else 35 [ -z "$interface" ] && return 1 36 [ -n "$ac_name" ] && append OPTIONS "-C $ac_name" 37 for service_name in $service_names; do 38 append OPTIONS "-S $service_name" 39 done 40 append OPTIONS "-I $interface" 41 [ -n "$maxsesssionsperpeer" ] && append OPTIONS "-x $maxsesssionsperpeer" 42 [ -n "$localip" ] && append OPTIONS "-L $localip" 43 [ -n "$firstremoteip" ] && append OPTIONS "-R $firstremoteip" 44 [ -n "maxsessions" ] && append OPTIONS "-N $maxsessions" 45 [ -n "optionsfile" ] && append OPTIONS "-O $optionsfile" 46 [ "$randomsession" = "1" ] && append OPTIONS "-r" 47 [ "$unit" = "1" ] && append OPTIONS "-u" 48 [ -n "$offset" ] && append OPTIONS "-o $offset" 49 [ -n "$timeout" ] && append OPTIONS "-T $timeout" 50 [ -n "$mss" ] && append OPTIONS "-m $mss" 51 [ "$sync" = "1" ] && append OPTIONS "-s" 52 fi 53 54 procd_open_instance 55 procd_set_param command /usr/sbin/pppoe-server -F 56 procd_append_param command $OPTIONS 57 procd_set_param file /etc/ppp/options 58 procd_append_param file /etc/ppp/pppoe-server-options 59 procd_close_instance 60 } 61 62 start_service() { 63 config_load pppoe 64 config_foreach pppoe_instance pppoe_server 65 } 66 67 service_triggers() { 68 local interface 69 config_load pppoe 70 config_foreach pppoe_triggers pppoe_server 71 72 procd_add_reload_trigger "pppoe" 73 procd_add_interface_trigger "$interface" 74 }