#!/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 }