local path="$1"
local offset="$2"
- if [ -z "$path" ]; then
+ if [ -e "$path" ]; then
echo "get_mac_binary: file $path not found!" >&2
return
fi
echo "${INDEX:+$PREFIX$INDEX}"
}
-mtd_get_mac_ascii()
-{
+mtd_get_mac_ascii() {
local mtdname="$1"
local key="$2"
local part
[ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty"
}
+mtd_get_mac_text() {
+ local mtdname=$1
+ local offset=$2
+ local part
+ local mac_dirty
+
+ part=$(find_mtd_part "$mtdname")
+ if [ -z "$part" ]; then
+ echo "mtd_get_mac_text: partition $mtdname not found!" >&2
+ return
+ fi
+
+ if [ -z "$offset" ]; then
+ echo "mtd_get_mac_text: offset missing!" >&2
+ return
+ fi
+
+ mac_dirty=$(dd if="$part" bs=1 skip="$offset" count=17 2>/dev/null)
+
+ # "canonicalize" mac
+ [ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty"
+}
+
mtd_get_mac_binary() {
local mtdname="$1"
local offset="$2"
echo $oui:$nic
}
-macaddr_setbit_la()
-{
+macaddr_setbit_la() {
local mac=$1
printf "%02x:%s" $((0x${mac%%:*} | 0x02)) ${mac#*:}
}
-macaddr_2bin()
-{
+macaddr_2bin() {
local mac=$1
echo -ne \\x${mac//:/\\x}
}
-macaddr_canonicalize()
-{
+macaddr_canonicalize() {
local mac="$1"
local canon=""