ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/net/mac-telnet/files/mactelnet.init b/external/subpack/net/mac-telnet/files/mactelnet.init
new file mode 100755
index 0000000..701ce98
--- /dev/null
+++ b/external/subpack/net/mac-telnet/files/mactelnet.init
@@ -0,0 +1,80 @@
+#!/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
+}
+