diff --git a/obuspa/Makefile b/obuspa/Makefile index 26b6a0312..26ccc03cd 100644 --- a/obuspa/Makefile +++ b/obuspa/Makefile @@ -133,6 +133,7 @@ define Package/obuspa/install $(INSTALL_BIN) ./files/etc/uci-defaults/obuspa-set-dhcp-option $(1)/etc/uci-defaults/ $(INSTALL_BIN) ./files/etc/uci-defaults/92-obuspa_firewall $(1)/etc/uci-defaults/ $(INSTALL_BIN) ./files/etc/uci-defaults/93-obuspa_mdns_adv $(1)/etc/uci-defaults/ + $(INSTALL_BIN) ./files/etc/uci-defaults/94-obuspa_set_credential $(1)/etc/uci-defaults/ $(INSTALL_BIN) ./files/etc/firewall.usp $(1)/etc/ $(INSTALL_BIN) ./files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user $(1)/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user ifeq ($(CONFIG_OBUSPA_CWMP_DATAMODEL_SUPPORT),y) diff --git a/obuspa/files/etc/uci-defaults/94-obuspa_set_credential b/obuspa/files/etc/uci-defaults/94-obuspa_set_credential new file mode 100644 index 000000000..9f8dd3752 --- /dev/null +++ b/obuspa/files/etc/uci-defaults/94-obuspa_set_credential @@ -0,0 +1,29 @@ +#!/bin/sh + +. /lib/functions.sh + +# Get Manufacturer OUI. +oui=$(db -q get device.deviceinfo.ManufacturerOUI) +oui=$(echo "${oui}" | tr 'a-f' 'A-F') + +# Get system serial number. +serial=$(db -q get device.deviceinfo.SerialNumber) + +username="${oui}-${serial}" +password="iopsys" + +# Get userid values +config_load obuspa +config_get user global username "" +config_get pass global password "" + +# Only set if they are empty or not same +if [ -z "${user}" ] || [ "${user}" != "${username}" ]; then + uci -q set obuspa.global.username="${username}" +fi + +if [ -z "${pass}" ] || [ "${pass}" != "${password}" ]; then + uci -q set obuspa.global.password="${password}" +fi + +# No need for commit here, it is done by uci_apply_defaults(). diff --git a/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user b/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user index 95ae36c46..bafda3998 100644 --- a/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user +++ b/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user @@ -391,10 +391,15 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then uci_change=1 else if [ -z "${dhcp_mqtt}" ]; then + user="$(uci -q get obuspa.global.username)" + pass="$(uci -q get obuspa.global.password)" + sec=$(uci -q add obuspa mqtt) uci -q rename obuspa."${sec}"='dhcpmqtt' dhcp_mqtt="dhcpmqtt" uci -q set obuspa.$dhcp_mqtt.Enable='1' + uci -q set obuspa.$dhcp_mqtt.Username="${user}" + uci -q set obuspa.$dhcp_mqtt.Password="${pass}" fi uci -q set obuspa.$dhcp_mqtt.BrokerAddress="${ip}" @@ -476,6 +481,9 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then if [ -n "${offered_proto}" ]; then if [ "${offered_proto}" == "MQTT" ]; then + user="$(uci -q get obuspa.global.username)" + pass="$(uci -q get obuspa.global.password)" + uci -q set obuspa.dhcpcontroller.Topic="${topic}" uci -q set obuspa.dhcpcontroller.mqtt='dhcpmqtt' @@ -486,6 +494,9 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then uci -q set obuspa.dhcpmqtt.TransportProtocol="${mtp_encrypt}" uci -q set obuspa.dhcpmqtt.Enable='1' uci -q set obuspa.dhcpmqtt.ProtocolVersion='5.0' + uci -q set obuspa.dhcpmqtt.Username="${user}" + uci -q set obuspa.dhcpmqtt.Password="${pass}" + agent_topic=$(get_agent_topic) sec=$(uci -q add obuspa mtp)