lede-packages-rs

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

mactelnet.init (1358B)


      1 #!/bin/sh /etc/rc.common
      2 # Copyright (C) 2014 OpenWrt.org
      3 
      4 START=60
      5 
      6 USE_PROCD=1
      7 
      8 PROG=/usr/sbin/mactelnetd
      9 USERS=/var/etc/mactelnetd.users
     10 SSHMODE=0
     11 
     12 add_account() {
     13 	local cfg="$1"
     14 	local user pass
     15 
     16 	[ $SSHMODE -eq 0 ] || {
     17 		[ -n "$already_warned" ] || {
     18 			echo "mactelnet.$cfg: login sections ignored in SSH mode" >&1
     19 			already_warned=1
     20 		}
     21 		return
     22 	}
     23 
     24 	config_get username "$cfg" username
     25 	config_get password "$cfg" password
     26 
     27 	[ -n "$username" ] || {
     28 		echo "mactelnet.$cfg: username missing" >&2
     29 		return
     30 	}
     31 
     32 	[ -n "$password" ] || {
     33 		echo "mactelnet.$cfg: password missing" >&2
     34 		return
     35 	}
     36 
     37 	echo "$username:$password" >> $USERS
     38 }
     39 
     40 add_interface() {
     41 	local iface="$1"
     42 	local device
     43 
     44 	[ -n "$iface" ] || return
     45 
     46 	if network_get_physdev device "$iface"; then
     47 		procd_append_param command -i "$device"
     48 	fi
     49 
     50 	procd_add_reload_interface_trigger "$iface"
     51 }
     52 
     53 add_globals() {
     54 	local cfg="$1"
     55 
     56 	config_get_bool SSHMODE "$cfg" sshmode 0
     57 	[ $SSHMODE -eq 0 ] || procd_append_param command -S
     58 
     59 	config_list_foreach "$cfg" interface add_interface
     60 }
     61 
     62 start_service() {
     63 	. /lib/functions/network.sh
     64 
     65 	procd_open_instance
     66 
     67 	procd_add_reload_trigger mactelnet
     68 	procd_set_param command "$PROG" -f
     69 
     70 	config_load mactelnet
     71 	config_foreach add_globals mactelnetd
     72 
     73 	[ $SSHMODE -eq 1 ] || {
     74 		rm -f $USERS
     75 		config_foreach add_account login
     76 	}
     77 
     78 	procd_close_instance
     79 }
     80