From 3affc786d46bd8f1db0f630a923ff508b6fe0927 Mon Sep 17 00:00:00 2001 From: Vivek Kumar Dutta Date: Fri, 7 Jun 2024 12:49:33 +0530 Subject: [PATCH] obuspa: Fix dhcp onboarding --- obuspa/Makefile | 2 +- .../etc/uci-defaults/00-obuspa-extender-mode | 13 ------- .../udhcpc.user.d/udhcpc_obuspa_opt125.user | 34 ++++++++++++++----- 3 files changed, 27 insertions(+), 22 deletions(-) delete mode 100644 obuspa/files/etc/uci-defaults/00-obuspa-extender-mode diff --git a/obuspa/Makefile b/obuspa/Makefile index f6457594b..ad6da56d9 100644 --- a/obuspa/Makefile +++ b/obuspa/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=obuspa -PKG_VERSION:=7.0.5.6.4 +PKG_VERSION:=7.0.5.6.5 LOCAL_DEV:=0 ifneq ($(LOCAL_DEV),1) diff --git a/obuspa/files/etc/uci-defaults/00-obuspa-extender-mode b/obuspa/files/etc/uci-defaults/00-obuspa-extender-mode deleted file mode 100644 index e8e559c20..000000000 --- a/obuspa/files/etc/uci-defaults/00-obuspa-extender-mode +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -. /lib/functions.sh - -config_load obuspa -config_get interface global interface "" - -if command -v fw_printenv; then - mode="$(fw_printenv -n netmode)" - if [ "${mode}" == "extender" -a -z "$interface" ] ; then - uci_set obuspa global interface "lan" - fi -fi 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 8c9e2c15e..d95a94573 100644 --- a/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user +++ b/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user @@ -8,6 +8,11 @@ RETRY_MIN_INTERVAL="5" RETRY_INTERVAL_MUL="2000" ENDPOINT_ID="" +log() +{ + echo "$*"|logger -t obuspa.dhcp -p debug +} + get_oui_from_db() { db -q get device.deviceinfo.ManufacturerOUI } @@ -124,15 +129,15 @@ get_vivsoi() { done } -get_netmode() +get_access_role() { - local mode + local mode lan_proto - if command -v fw_printenv; then - mode="$(fw_printenv -n netmode)" - fi + lan_proto="$(uci -q get network.lan.proto)" - if [ "$mode" != "extender" ]; then + if [ "${lan_proto}" == "dhcp" ]; then + mode="extender" + else mode="full_access" fi @@ -141,13 +146,25 @@ get_netmode() config_load obuspa config_get_bool enable_obuspa global enabled 1 -config_get wan_intf global interface "wan" +config_get wan_intf global interface config_get_bool dhcp_discovery global dhcp_discovery 1 if [ "$enable_obuspa" = "0" ] || [ "$dhcp_discovery" = "0" ]; then return 0 fi +if [ -z "${wan_intf}" ]; then + role="$(get_access_role)" + + if [ "${role}" = "extender" ]; then + wan_intf="lan" + uci -q set obuspa.global.interface="lan" + uci commit obuspa + else + wan_intf="wan" + fi +fi + if [ "${wan_intf}" == "${INTERFACE}" ]; then if [ -n "$opt125" ]; then len=$(printf "$opt125"|wc -c) @@ -226,7 +243,7 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then fi fi - uci -q set obuspa.dhcpcontroller.assigned_role_name="$(get_netmode)" + uci -q set obuspa.dhcpcontroller.assigned_role_name="$(get_access_role)" uci -q set obuspa.dhcpcontroller.Enable='1' uci_change=1 fi @@ -309,6 +326,7 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then fi if [ ${uci_change} -eq 1 ]; then + log "# Reloading obuspa as dhcp config changed" ubus call uci commit '{"config":"obuspa"}' fi fi