#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2014 OpenWrt.org
|
|
|
|
START=60
|
|
|
|
USE_PROCD=1
|
|
|
|
PROG=/usr/sbin/mactelnetd
|
|
USERS=/var/etc/mactelnetd.users
|
|
SSHMODE=0
|
|
|
|
add_account() {
|
|
local cfg="$1"
|
|
local user pass
|
|
|
|
[ $SSHMODE -eq 0 ] || {
|
|
[ -n "$already_warned" ] || {
|
|
echo "mactelnet.$cfg: login sections ignored in SSH mode" >&1
|
|
already_warned=1
|
|
}
|
|
return
|
|
}
|
|
|
|
config_get username "$cfg" username
|
|
config_get password "$cfg" password
|
|
|
|
[ -n "$username" ] || {
|
|
echo "mactelnet.$cfg: username missing" >&2
|
|
return
|
|
}
|
|
|
|
[ -n "$password" ] || {
|
|
echo "mactelnet.$cfg: password missing" >&2
|
|
return
|
|
}
|
|
|
|
echo "$username:$password" >> $USERS
|
|
}
|
|
|
|
add_interface() {
|
|
local iface="$1"
|
|
local device
|
|
|
|
[ -n "$iface" ] || return
|
|
|
|
if network_get_physdev device "$iface"; then
|
|
procd_append_param command -i "$device"
|
|
fi
|
|
|
|
procd_add_reload_interface_trigger "$iface"
|
|
}
|
|
|
|
add_globals() {
|
|
local cfg="$1"
|
|
|
|
config_get_bool SSHMODE "$cfg" sshmode 0
|
|
[ $SSHMODE -eq 0 ] || procd_append_param command -S
|
|
|
|
config_list_foreach "$cfg" interface add_interface
|
|
}
|
|
|
|
start_service() {
|
|
. /lib/functions/network.sh
|
|
|
|
procd_open_instance
|
|
|
|
procd_add_reload_trigger mactelnet
|
|
procd_set_param command "$PROG" -f
|
|
|
|
config_load mactelnet
|
|
config_foreach add_globals mactelnetd
|
|
|
|
[ $SSHMODE -eq 1 ] || {
|
|
rm -f $USERS
|
|
config_foreach add_account login
|
|
}
|
|
|
|
procd_close_instance
|
|
}
|
|
|