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