base-files: mtd_get_mac_ascii bugfix

The mtd_get_mac_ascii utility function was broken. This fixes it.

  - Remove the superfluous include of /lib/functions.sh. The
    function is already in that file so it is pointless,
  - only use a variable if the whole key word matches,
  - don't try to process the MAC address if it is empty,
  - use 'tr' to canonicalize the MAC address,

Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
[juhosg: add more fixes, update commit message]
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 38690
master
Gabor Juhos 11 years ago
parent 7bd3a7bc7b
commit 23cf426324
  1. 2
      package/base-files/Makefile
  2. 7
      package/base-files/files/lib/functions.sh

@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/version.mk
PKG_NAME:=base-files PKG_NAME:=base-files
PKG_RELEASE:=146 PKG_RELEASE:=147
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
PKG_BUILD_DEPENDS:=opkg/host PKG_BUILD_DEPENDS:=opkg/host

@ -248,17 +248,16 @@ mtd_get_mac_ascii()
local part local part
local mac_dirty local mac_dirty
. /lib/functions.sh
part=$(find_mtd_part "$mtdname") part=$(find_mtd_part "$mtdname")
if [ -z "$part" ]; then if [ -z "$part" ]; then
echo "mtd_get_mac_ascii: partition $mtdname not found!" >&2 echo "mtd_get_mac_ascii: partition $mtdname not found!" >&2
return return
fi fi
mac_dirty=$(strings "$part" | sed -n 's/'"$key"'=//p') mac_dirty=$(strings "$part" | sed -n 's/^'"$key"'=//p')
# "canonicalize" mac # "canonicalize" mac
printf "%02x:%02x:%02x:%02x:%02x:%02x" 0x${mac_dirty//:/ 0x} [ -n "$mac_dirty" ] && echo ${mac_dirty} | tr [A-F] [a-f]
} }
mtd_get_mac_binary() { mtd_get_mac_binary() {

Loading…
Cancel
Save