diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 3ca035ca8b..0b26afe57f 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -260,6 +260,11 @@ generate_static_system() { uci -q set "system.@system[-1].hostname=$hostname" fi + local label_macaddr + if json_get_var label_macaddr label_macaddr; then + uci -q set "system.@system[-1].label_macaddr=$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 3051ac8476..cb0508fe9c 100644 --- a/package/base-files/files/lib/functions/system.sh +++ b/package/base-files/files/lib/functions/system.sh @@ -19,6 +19,7 @@ get_mac_label() { [ -n "$macdevice" ] && macaddr=$(get_mac_binary "$basepath/$macdevice/mac-address" 0 2>/dev/null) [ -n "$macaddr" ] || macaddr=$(get_mac_binary "$basepath/$macdevice/local-mac-address" 0 2>/dev/null) + [ -n "$macaddr" ] || macaddr=$(uci -q get system.@system[0].label_macaddr) echo $macaddr } diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh index 2fb7555969..c2c6dc3fdc 100755 --- a/package/base-files/files/lib/functions/uci-defaults.sh +++ b/package/base-files/files/lib/functions/uci-defaults.sh @@ -307,6 +307,14 @@ ucidef_set_interface_macaddr() { ucidef_set_interface "$network" macaddr "$macaddr" } +ucidef_set_label_macaddr() { + local macaddr="$1" + + json_select_object system + json_add_string label_macaddr "$macaddr" + json_select .. +} + ucidef_add_atm_bridge() { local vpi="$1" local vci="$2"