From: Rosy Song <rosys...@rosinson.com>

If a label MAC address is provided for device, system
will rename the hostname with OpenWrt_{eui mac address}.
This helps to distinguish between different devices.

Signed-off-by: Rosy Song <rosys...@rosinson.com>
[merged with commit introducing macaddr_geteui, rebased on updated
label MAC address storage]
Signed-off-by: Adrian Schmutzler <freif...@adrianschmutzler.de>
---
 package/base-files/files/bin/config_generate     | 12 +++++++-----
 package/base-files/files/lib/functions/system.sh |  7 +++++++
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/package/base-files/files/bin/config_generate 
b/package/base-files/files/bin/config_generate
index fe35788a26..d2e1897818 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -256,17 +256,19 @@ generate_static_system() {
 
        if json_is_a system object; then
                json_select system
-                       local hostname
-                       if json_get_var hostname hostname; then
-                               uci -q set 
"system.@system[-1].hostname=$hostname"
-                       fi
-
                        local label_macaddr=$(get_mac_label_dt)
                        [ -n "$label_macaddr" ] || json_get_var label_macaddr 
label_macaddr
                        if [ -n "$label_macaddr" ]; then
                                uci -q set 
"system.@system[-1].label_macaddr=$label_macaddr"
                        fi
 
+                       local hostname
+                       if json_get_var hostname hostname; then
+                               uci -q set 
"system.@system[-1].hostname=$hostname"
+                       elif [ -n "$label_macaddr" ]; then
+                               uci -q set 
"system.@system[-1].hostname=OpenWrt-$(macaddr_geteui $label_macaddr)"
+                       fi
+
                        if json_is_a ntpserver array; then
                                local keys key
                                json_get_keys keys ntpserver
diff --git a/package/base-files/files/lib/functions/system.sh 
b/package/base-files/files/lib/functions/system.sh
index 5b4ced836c..f2b8f2395c 100644
--- a/package/base-files/files/lib/functions/system.sh
+++ b/package/base-files/files/lib/functions/system.sh
@@ -115,6 +115,13 @@ macaddr_add() {
        echo $oui:$nic
 }
 
+macaddr_geteui() {
+       local mac=$1
+       local sep=$2
+
+       echo ${mac:9:2}$sep${mac:12:2}$sep${mac:15:2}
+}
+
 macaddr_setbit_la() {
        local mac=$1
 
-- 
2.20.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to