+++ /dev/null
-#
-# Copyright (C) 2007-2011 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=etherwake
-PKG_VERSION:=1.09
-PKG_RELEASE:=3
-
-PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
-PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/e/etherwake
-PKG_MD5SUM:=628e8b2a28d47f262e4c26c989402a59
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION).orig
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/etherwake
- SECTION:=net
- CATEGORY:=Network
- TITLE:=WoL client for magic packets via ethernet frames
- URL:=http://ftp.debian.org/debian/pool/main/e/etherwake
-endef
-
-define Package/etherwake/description
- You can wake up WOL compliant Computers which have been powered down to
- sleep mode or start WOL compliant Computers with a BIOS feature.
- WOL is an abbreviation for Wake-on-LAN. It is a standard that allows you
- to turn on a computer from another location over a network connection.
- ether-wake also supports WOL passwords.
-endef
-
-define Build/Compile
- $(TARGET_CC) $(TARGET_CFLAGS) -D__UCLIBC__ $(PKG_BUILD_DIR)/ether-wake.c -o $(PKG_BUILD_DIR)/etherwake
-endef
-
-define Package/etherwake/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/etherwake $(1)/usr/bin/
- $(INSTALL_DIR) $(1)/etc/config
- $(INSTALL_DATA) files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME)
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
-endef
-
-define Package/etherwake/conffiles
-/etc/config/etherwake
-endef
-
-$(eval $(call BuildPackage,etherwake))
+++ /dev/null
-config 'etherwake' 'setup'
- # possible program pathes
- option 'pathes' '/usr/bin/etherwake /usr/bin/ether-wake'
- # use sudo, defaults to off
- option 'sudo' 'off'
- # interface, defaults to 'eth0'
- # -i <ifname>
- option 'interface' ''
- # send wake-up packet to the broadcast address, defaults to off
- # -b
- option 'broadcast' 'off'
-
-config 'target'
- # name for the target
- option 'name' 'example'
- # mac address to wake up
- option 'mac' '11:22:33:44:55:66'
- # password in hex without any delimiters
- option 'password' 'AABBCCDDEEFF'
- # wake up on system start, defaults to off
- option 'wakeonboot' 'off'
-
-# To add a new target use:
-# uci add etherwake target
-# uci set etherwake.@target[-1].name=example
-# uci set etherwake.@target[-1].mac=11:22:33:44:55:66
-# uci set etherwake.@target[-1].password=AABBCCDDEEFF
-# uci set etherwake.@target[-1].wakeonboot=off
+++ /dev/null
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2009 OpenWrt.org
-
-NAME='etherwake'
-START=60
-PROGRAM=''
-
-start()
-{
- local searchlist=''
- local section=''
- local value=''
-
- config_load "${NAME}"
-
- # check for available program
- config_get searchlist 'setup' 'pathes'
- PROGRAM=$(search_program "${searchlist}")
- [ -z "${PROGRAM}" ] && {
- echo "${initscript}: No ${NAME} program installed. Check: opkg list | grep ${NAME}"
- exit 1
- }
-
- # sudo
- config_get_bool value 'setup' 'sudo' '0'
- [ "${value}" -ne 0 ] && PROGRAM="sudo ${PROGRAM}"
-
- # interface
- config_get value 'setup' 'interface'
- [ -n "${value}" ] && append PROGRAM "-i ${value}"
-
- # broadcast
- config_get_bool value 'setup' 'broadcast' '0'
- [ "${value}" -ne 0 ] && append PROGRAM '-b'
-
- # wake up targets
- config_foreach etherwake_start target $*
-}
-
-etherwake_start()
-{
- local section="$1"
- shift
-
- local names="$*"
-
- local value=''
- local target=''
-
- if [ -z "${names}" ]
- then
- # check if boot target
- config_get_bool value "${section}" 'wakeonboot' '0'
- [ "${value}" -eq 0 ] && return 0
-
- # wake up target
- do_etherwake "${section}"
- return $?
- else
- # name
- config_get value "${section}" 'name'
- [ -z "${value}" ] && return 0
-
- for target in ${names}
- do
- [ "${value}" != "${target}" ] && continue
-
- # wake up target
- do_etherwake "${section}"
- return $?
- done
- fi
-}
-
-# execute etherwake command for target
-do_etherwake()
-{
- local section="$1"
- local value=''
- local password=''
- local args=''
-
- # password
- config_get value "${section}" 'password'
- [ -n "${value}" ] && {
- password=$(etherwake_password "${value}")
- append args "-p ${password}"
- }
-
- # mac address
- config_get value "${section}" 'mac'
- [ -z "${value}" ] && { echo "${initscript}: Target ${section} has no MAC address"; return 1; }
- append args "${value}"
-
- # name
- config_get value "${section}" 'name'
- [ -z "${value}" ] && value="{section}"
-
- # execute command
- echo "${initscript}: Waking up ${value} via ${PROGRAM}${args:+ ${args}}"
- ${PROGRAM} ${args}
- return $?
-}
-
-
-# find first available program from searchlist
-search_program()
-{
- local searchlist="$1"
- local test=''
- local program=''
-
- for test in ${searchlist} ; do
- [ -x "${test}" ] && {
- program="${test}"
- break;
- }
- done
-
- [ -n "${program}" ] && echo "${program}"
-
- return
-}
-
-# prepare hex password
-etherwake_password()
-{
- local delimiter=':'
- local password=`echo "$1" | sed "s/../&${delimiter}/g"`
- echo "${password%${delimiter}}"
- return
-}
+++ /dev/null
---- etherwake-1.09.orig/ether-wake.c 2005-07-10 20:44:25.000000000 +0200
-+++ etherwake-1.09.orig.no_ether_hostton/ether-wake.c 2007-04-29 19:03:41.000000000 +0200
-@@ -15,7 +15,11 @@
- " an optional password appended.\n"
- "\n"
- " The single required parameter is the Ethernet MAC (station) address\n"
-+#if !defined(__UCLIBC__)
- " of the machine to wake or a host ID with known NSS 'ethers' entry.\n"
-+#else
-+" of the machine to wake.\n"
-+#endif
- " The MAC address may be found with the 'arp' program while the target\n"
- " machine is awake.\n"
- "\n"
-@@ -289,16 +293,22 @@
- if (debug)
- fprintf(stderr, "The target station address is %s.\n",
- ether_ntoa(eaddr));
-+#if !defined(__UCLIBC__)
- } else if (ether_hostton(hostid, eaddr) == 0) {
- if (debug)
- fprintf(stderr, "Station address for hostname %s is %s.\n",
- hostid, ether_ntoa(eaddr));
-+#endif
- } else {
- (void)fprintf(stderr,
- "ether-wake: The Magic Packet host address must be "
- "specified as\n"
-+#if !defined(__UCLIBC__)
- " - a station address, 00:11:22:33:44:55, or\n"
- " - a hostname with a known 'ethers' entry.\n");
-+#else
-+ " - a station address, 00:11:22:33:44:55\n");
-+#endif
- return -1;
- }
- return 0;