--- /dev/null
+#
+# Copyright (C) 2014 OpenWrt.org
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mac-telnet
+PKG_VERSION:=2014-09-03
+PKG_RELEASE:=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/jow-/MAC-Telnet.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=9a8bf5c242c6b0336c2f257aa67d2240454ba4b0
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_LICENSE:=GPL-2.0+
+PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+TARGET_CFLAGS += -ffunction-sections -fdata-sections $(if $(CONFIG_MACTELNET_PLAIN_SUPPORT),-DTELNET_SUPPORT)
+TARGET_LDFLAGS += -Wl,--gc-sections
+
+# 1: name
+# 2: executable
+define BuildPlugin
+ define Package/mac-telnet-$(1)
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libubox
+ TITLE:=MAC-Telnet / MAC-SSH $(1)
+ URL:=https://github.com/jow-/MAC-Telnet
+ endef
+
+ define Package/mac-telnet-$(1)/description
+ Open source MAC Telnet client and server utilities for connecting to
+ Mikrotik RouterOS routers and Linux machines via MAC address.
+ endef
+
+ define Package/mac-telnet-$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(2) $$(1)/usr/sbin/
+ $(call Package/mac-telnet-$(1)/install-extra)
+ endef
+
+ $$(eval $$(call BuildPackage,mac-telnet-$(1)))
+endef
+
+define Package/mac-telnet-server/config
+ config MACTELNET_PLAIN_SUPPORT
+ bool "Include support for plain telnet connections"
+ depends on PACKAGE_mac-telnet-server
+ default y
+ help
+ Disable this option to only support SSH logins to the
+ MAC-Telnet server.
+endef
+
+define Package/mac-telnet-server/install-extra
+ $(INSTALL_DIR) $$(1)/etc/init.d
+ $(INSTALL_BIN) ./files/mactelnet.init $$(1)/etc/init.d/mactelnet
+ $(INSTALL_DIR) $$(1)/etc/config
+ $(INSTALL_DATE) ./files/mactelnet.config $$(1)/etc/config/mactelnet
+endef
+
+
+$(eval $(call BuildPlugin,server,mactelnetd))
+$(eval $(call BuildPlugin,client,mactelnet))
+$(eval $(call BuildPlugin,ping,macping))
+$(eval $(call BuildPlugin,discover,mndp))
--- /dev/null
+#!/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
+}
+