diff --git a/gateway-info/files/etc/udhcpc.user.d/udhcpc_gateway_info.user b/gateway-info/files/etc/udhcpc.user.d/udhcpc_gateway_info.user index a8fec5209..803e8bf52 100644 --- a/gateway-info/files/etc/udhcpc.user.d/udhcpc_gateway_info.user +++ b/gateway-info/files/etc/udhcpc.user.d/udhcpc_gateway_info.user @@ -40,22 +40,22 @@ get_vivsoi() { #hex-string 2 character=1 Byte # length in hex string will be twice of actual Byte length - [ "$len" -gt "8" ] || return + [ "${len}" -gt 8 ] || return data="${opt125}" rem_len="${len}" - while [ $rem_len -gt 0 ]; do + while [ "${rem_len}" -gt 0 ]; do ent_id=${data:0:8} ent_id=$(printf "%d\n" "0x$ent_id") - if [ $ent_id -ne 3561 ]; then + if [ "${ent_id}" -ne 3561 ]; then len_val=${data:8:2} data_len=$(printf "%d\n" "0x$len_val") # add 4 byte for ent_id and 1 byte for len data_len=$(( data_len * 2 + 10 )) # move ahead data to next enterprise id data=${data:"${data_len}":"${rem_len}"} - rem_len=$(( rem_len - $data_len )) + rem_len=$(( rem_len - data_len )) continue fi @@ -66,7 +66,7 @@ get_vivsoi() { data_len=$(( data_len * 2 + 10 )) opt_len=$(printf "%d\n" "0x$len_val") - [ $opt_len -eq 0 ] && return + [ "${opt_len}" -eq 0 ] && return # populate the option data of enterprise id sub_data_len=$(( opt_len * 2)) @@ -74,7 +74,7 @@ get_vivsoi() { sub_data=${data:10:"${sub_data_len}"} # parsing of suboption of option 125 - while [ $sub_data_len -gt 0 ]; do + while [ "${sub_data_len}" -gt 0 ]; do # get the suboption id sub_opt_id=${sub_data:0:2} sub_opt_id=$(printf "%d\n" "0x$sub_opt_id") @@ -85,20 +85,20 @@ get_vivsoi() { sub_opt_len=$(( sub_opt_len * 2 )) # get the value of sub option starting 4 means starting after length - sub_opt_val=${sub_data:4:${sub_opt_len}} + sub_opt_val=${sub_data:4:"${sub_opt_len}"} # assign the value found in sub option case "${sub_opt_id}" in "4") - OUI=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + OUI=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') GW_DISCOVERED=1 ;; "5") - SERIAL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + SERIAL=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') GW_DISCOVERED=1 ;; "6") - CLASS=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + CLASS=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') GW_DISCOVERED=1 ;; esac @@ -110,7 +110,7 @@ get_vivsoi() { sub_data_len=$((sub_data_len - sub_opt_end)) # fetch next sub option hex string - sub_data=${sub_data:${sub_opt_end}:${sub_data_len}} + sub_data=${sub_data:"${sub_opt_end}":"${sub_data_len}"} done # move ahead data to next enterprise id @@ -131,15 +131,13 @@ send_host_query() { sleep 5 json_load "$(ubus call umdns browse)" - json_select discovered_services - if [ "${?}" -ne 0 ]; then + if ! json_select discovered_services; then json_cleanup loop=$(( loop - 1 )) continue fi - json_select _usp-agt-mqtt._tcp - if [ "${?}" -ne 0 ]; then + if ! json_select _usp-agt-mqtt._tcp; then json_cleanup loop=$(( loop - 1 )) continue @@ -156,7 +154,7 @@ send_host_query() { json_get_keys keys for key in $keys; do - json_select $key + json_select "${key}" json_get_var _host host "" if [ -z "${_host}" ] || [[ "${sent_host}" =~ " ${_host}" ]]; then @@ -166,9 +164,10 @@ send_host_query() { sent_host="${sent_host} ${_host}" cmd="ubus call umdns query '{\"question\":\"$_host\",\"interface\":\"$intf\"}'" - eval $cmd + sh -c "${cmd}" resp=0 json_select .. + sleep 2 # umdns query sometime takes time to resolve so adding some sleep done json_cleanup @@ -185,32 +184,29 @@ get_usp_agent_id() { fi json_load "$(ubus call umdns browse)" - json_select discovered_services - if [ "${?}" -ne 0 ]; then + if ! json_select discovered_services; then json_cleanup - echo ${ID} + echo "${ID}" return 0 fi - json_select _usp-agt-mqtt._tcp - if [ "${?}" -ne 0 ]; then + if ! json_select _usp-agt-mqtt._tcp; then json_cleanup - echo ${ID} + echo "${ID}" return 0 fi json_get_keys keys for key in $keys; do - json_select $key - json_select $family - if [ "${?}" -ne 0 ]; then + json_select "${key}" + if ! json_select "${family}"; then json_select .. continue fi json_get_keys ips for ip in $ips; do - json_get_var ip_val $ip + json_get_var ip_val "${ip}" if [ "${ip_val}" != "${dhcp_ip}" ]; then continue fi @@ -219,8 +215,8 @@ get_usp_agent_id() { json_select txt json_get_keys txts for _txt in $txts; do - json_get_var text_val $_txt - if [[ "${text_val:0:3}" == "ID=" ]]; then + json_get_var text_val "${_txt}" + if [[ "${text_val:0:3}" = "ID=" ]]; then ID="${text_val:3}" break fi @@ -238,16 +234,16 @@ get_usp_agent_id() { done json_cleanup - echo ${ID} + echo "${ID}" } get_mac_address() { ip="${1}" device="${2}" - mac="$(cat /proc/net/arp | grep $ip | awk '{print $4}')" + mac=$(grep "${ip}" /proc/net/arp | awk '{print $4}') if [ -z "${mac}" ]; then - arp_resp="$(arping -b -f -c 5 -I $device $ip | grep 'Unicast reply from' | awk '{print $5}')" + arp_resp=$(arping -b -f -c 5 -I "${device}" "${ip}" | grep 'Unicast reply from' | awk '{print $5}') if [ -n "${arp_resp}" ]; then mac=${arp_resp:1:-1} fi @@ -260,7 +256,7 @@ send_unknown_gw_event() { mac="${1}" cmd="ubus -t 5 send gateway-info.gateway.unknown '{\"hwaddr\":\"$mac\"}'" - eval $cmd + sh -c "${cmd}" } send_cwmp_gw_event() { @@ -269,14 +265,14 @@ send_cwmp_gw_event() { serial="${3}" cmd="ubus -t 5 send gateway-info.gateway.cwmp '{\"oui\":\"$oui\",\"class\":\"$class\",\"serial\":\"$serial\"}'" - eval $cmd + sh -c "${cmd}" } send_usp_gw_event() { endpoint="${1}" cmd="ubus -t 5 send gateway-info.gateway.usp '{\"endpoint\":\"$endpoint\"}'" - eval $cmd + sh -c "${cmd}" } config_load gateway @@ -287,13 +283,13 @@ if [ "${enable}" -eq 0 ]; then return 0 fi -if [ "${wan_intf}" == "${INTERFACE}" ]; then - if [ "${1}" == "deconfig" ]; then +if [ "${wan_intf}" = "${INTERFACE}" ]; then + if [ "${1}" = "deconfig" ]; then rm -rf /var/state/gwinfo return 0 fi - json_load "$(ifstatus ${INTERFACE})" + json_load "$(ifstatus "${INTERFACE}")" json_get_var dev_name device "" json_select data json_get_var dhcp_ip dhcpserver "" @@ -303,7 +299,7 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then return 0 fi - MAC="$(get_mac_address $dhcp_ip $dev_name)" + MAC=$(get_mac_address "${dhcp_ip}" "${dev_name}") mkdir -p /var/state touch /var/state/gwinfo @@ -326,8 +322,8 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then return 0 fi - len=$(printf "$opt125"|wc -c) - get_vivsoi "$opt125" "$len" + len=$(echo -n "${opt125}" | wc -c) + get_vivsoi "${opt125}" "${len}" if [ "${GW_DISCOVERED}" -eq 0 ]; then send_unknown_gw_event "${MAC}" @@ -341,19 +337,18 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then uci -q -c /var/state commit gwinfo # Check for USP parameters - ubus -t 15 wait_for umdns - if [ "${?}" -ne 0 ]; then + if ! ubus -t 15 wait_for umdns; then send_cwmp_gw_event "${OUI}" "${CLASS}" "${SERIAL}" return 0 fi - resp=$(send_host_query $dev_name) + resp=$(send_host_query "${dev_name}") if [ "${resp}" -ne 0 ]; then send_cwmp_gw_event "${OUI}" "${CLASS}" "${SERIAL}" return 0 fi - ID="$(get_usp_agent_id $dhcp_ip)" + ID=$(get_usp_agent_id "${dhcp_ip}") if [ -z "${ID}" ]; then send_cwmp_gw_event "${OUI}" "${CLASS}" "${SERIAL}" return 0 diff --git a/icwmp/files/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user b/icwmp/files/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user index 6e5b5d202..d6fbd85d2 100644 --- a/icwmp/files/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user +++ b/icwmp/files/etc/udhcpc.user.d/udhcpc_icwmp_opt43.user @@ -16,12 +16,12 @@ get_opt43() { local opt43="$1" local len="$2" - [ "$len" -gt "2" ] || return + [ "${len}" -gt 2 ] || return first_byte=${opt43:0:2} first_byte=$(printf "%d\n" "0x$first_byte") - if [ $len -ge 4 ] && [ $first_byte -ge 1 ] && [ $first_byte -le 4 ]; then + if [ "${len}" -ge 4 ] && [ "${first_byte}" -ge 1 ] && [ "${first_byte}" -le 4 ]; then # it is in encapsulated form # opt43 encapsulated vendor-specific option has data in below format # Code Len Data item Code Len Data item Code @@ -35,7 +35,7 @@ get_opt43() { data="${opt43}" rem_len="${len}" # parsing of suboption of option 43 - while [ $rem_len -gt 0 ]; do + while [ "${rem_len}" -gt 0 ]; do # get the suboption id sub_opt_id=${data:0:2} sub_opt_id=$(printf "%d\n" "0x$sub_opt_id") @@ -50,13 +50,13 @@ get_opt43() { # assign the value found in sub option case "${sub_opt_id}" in - "1") DHCP_ACS_URL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + "1") DHCP_ACS_URL=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') ;; - "2") DHCP_PROV_CODE=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + "2") DHCP_PROV_CODE=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') ;; - "3") MIN_WAIT_INVL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + "3") MIN_WAIT_INVL=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') ;; - "4") INVL_MULTIPLIER=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + "4") INVL_MULTIPLIER=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') ;; esac @@ -70,7 +70,7 @@ get_opt43() { rem_len=$((rem_len - sub_opt_end)) done else - DHCP_ACS_URL=$(echo -n $opt43 | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + DHCP_ACS_URL=$(echo -n "${opt43}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') fi } @@ -92,9 +92,9 @@ if [ "$discovery_enable" = "0" ]; then return 0 fi -if [ "${wan_intf}" == "${INTERFACE}" ]; then +if [ "${wan_intf}" = "${INTERFACE}" ]; then if [ -n "$opt43" ]; then - len=$(printf "$opt43"|wc -c) + len=$(echo -n "$opt43"|wc -c) get_opt43 "$opt43" "$len" 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 bafda3998..f9a3a6ed9 100644 --- a/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user +++ b/obuspa/files/etc/udhcpc.user.d/udhcpc_obuspa_opt125.user @@ -57,18 +57,18 @@ get_vivsoi() { data="${opt125}" rem_len="${len}" - while [ $rem_len -gt 0 ]; do + while [ "${rem_len}" -gt 0 ]; do ent_id=${data:0:8} ent_id=$(printf "%d\n" "0x$ent_id") - if [ $ent_id -ne 3561 ]; then + if [ "${ent_id}" -ne 3561 ]; then len_val=${data:8:2} data_len=$(printf "%d\n" "0x$len_val") # add 4 byte for ent_id and 1 byte for len data_len=$(( data_len * 2 + 10 )) # move ahead data to next enterprise id data=${data:"${data_len}":"${rem_len}"} - rem_len=$(( rem_len - $data_len )) + rem_len=$(( rem_len - data_len )) continue fi @@ -79,7 +79,7 @@ get_vivsoi() { data_len=$(( data_len * 2 + 10 )) opt_len=$(printf "%d\n" "0x$len_val") - [ $opt_len -eq 0 ] && return + [ "${opt_len}" -eq 0 ] && return # populate the option data of enterprise id sub_data_len=$(( opt_len * 2)) @@ -98,28 +98,28 @@ get_vivsoi() { sub_opt_len=$(( sub_opt_len * 2 )) # get the value of sub option starting 4 means starting after length - sub_opt_val=${sub_data:4:${sub_opt_len}} + sub_opt_val=${sub_data:4:"${sub_opt_len}"} # assign the value found in sub option case "${sub_opt_id}" in "25") - URL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + URL=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') CONTROLLER_DISCOVERED=1 ;; "26") - PROV_CODE=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + PROV_CODE=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') CONTROLLER_DISCOVERED=1 ;; "27") - RETRY_MIN_INTERVAL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + RETRY_MIN_INTERVAL=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') CONTROLLER_DISCOVERED=1 ;; "28") - RETRY_INTERVAL_MUL=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + RETRY_INTERVAL_MUL=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') CONTROLLER_DISCOVERED=1 ;; "29") - ENDPOINT_ID=$(echo -n $sub_opt_val | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') + ENDPOINT_ID=$(echo -n "${sub_opt_val}" | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI' | xargs printf && echo '') CONTROLLER_DISCOVERED=1 ;; esac @@ -131,7 +131,7 @@ get_vivsoi() { sub_data_len=$((sub_data_len - sub_opt_end)) # fetch next sub option hex string - sub_data=${sub_data:${sub_opt_end}:${sub_data_len}} + sub_data=${sub_data:"${sub_opt_end}":"${sub_data_len}"} done # move ahead data to next enterprise id @@ -146,7 +146,7 @@ get_access_role() lan_proto="$(uci -q get network.lan.proto)" - if [ "${lan_proto}" == "dhcp" ]; then + if [ "${lan_proto}" = "dhcp" ]; then mode="extender" else mode="full_access" @@ -169,12 +169,11 @@ get_agent_topic() echo "${agent_topic}" } -config_load obuspa -config_get_bool enable_obuspa global enabled 1 +config_load obuspaconfig_get_bool enable_obuspa global enabled 1 config_get wan_intf global interface config_get_bool dhcp_discovery global dhcp_discovery 1 -if [ "$enable_obuspa" = "0" ] || [ "$dhcp_discovery" = "0" ]; then +if [ "${enable_obuspa}" -eq 0 ] || [ "${dhcp_discovery}" -eq 0 ]; then return 0 fi @@ -190,9 +189,9 @@ if [ -z "${wan_intf}" ]; then fi fi -if [ "${wan_intf}" == "${INTERFACE}" ]; then +if [ "${wan_intf}" = "${INTERFACE}" ]; then if [ -n "$opt125" ]; then - len=$(printf "$opt125"|wc -c) + len=$(echo -n "${opt125}"|wc -c) get_vivsoi "$opt125" "$len" fi @@ -228,10 +227,10 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then ;; *) # This is an FQDN, perform DNS query - nslookup $URL > /tmp/fqdn_ip - nslookup -type=ptr $URL > /tmp/fqdn_ptr - nslookup -type=srv $URL > /tmp/fqdn_srv - nslookup -type=txt $URL > /tmp/fqdn_srv + nslookup "${URL}" > /tmp/fqdn_ip + nslookup -type=ptr "${URL}" > /tmp/fqdn_ptr + nslookup -type=srv "${URL}" > /tmp/fqdn_srv + nslookup -type=txt "${URL}" > /tmp/fqdn_srv # TODO extend to collect information from dns-sd records ;; @@ -247,16 +246,16 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then fi fi - if [ "${proto}" == "mqtt" ] || [ "${proto}" == "mqtts" ]; then + if [ "${proto}" = "mqtt" ] || [ "${proto}" = "mqtts" ]; then offered_proto="MQTT" - if [ "${proto}" == "mqtt" ]; then + if [ "${proto}" = "mqtt" ]; then mtp_encrypt="TCP/IP" else mtp_encrypt="TLS" fi - elif [ "${proto}" == "ws" ] || [ "${proto}" == "wss" ]; then + elif [ "${proto}" = "ws" ] || [ "${proto}" = "wss" ]; then offered_proto="WebSocket" - if [ "${proto}" == "wss" ]; then + if [ "${proto}" = "wss" ]; then mtp_encrypt="1" else mtp_encrypt="0" @@ -265,7 +264,7 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then controllers=$(uci -q show obuspa | grep "=controller" | cut -d'=' -f1 | cut -d'.' -f2) for controller in $controllers; do - dhcp_disc=$(uci -q get obuspa.$controller.dhcp_discovered) + dhcp_disc=$(uci -q get obuspa."${controller}".dhcp_discovered) if [ "${dhcp_disc}" -eq 1 ]; then dhcp_controller="${controller}" break @@ -273,27 +272,27 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then done if [ -n "${dhcp_controller}" ]; then - cont_proto="$(uci -q get obuspa.$dhcp_controller.Protocol)" - if [ "${cont_proto}" == "MQTT" ]; then - dhcp_mqtt="$(uci -q get obuspa.$dhcp_controller.mqtt)" + cont_proto=$(uci -q get obuspa."${dhcp_controller}".Protocol) + if [ "${cont_proto}" = "MQTT" ]; then + dhcp_mqtt=$(uci -q get obuspa."${dhcp_controller}".mqtt) mtps=$(uci -q show obuspa | grep "=mtp" | cut -d'=' -f1 | cut -d'.' -f2) for mtp in $mtps; do - mtp_mqtt="$(uci -q get obuspa.$mtp.mqtt)" - if [ "${mtp_mqtt}" == "${dhcp_mqtt}" ]; then + mtp_mqtt=$(uci -q get obuspa."${mtp}".mqtt) + if [ "${mtp_mqtt}" = "${dhcp_mqtt}" ]; then dhcp_mtp="${mtp}" break fi done - elif [ "${cont_proto}" == "WebSocket" ]; then - cont_port="$(uci -q get obuspa.$dhcp_controller.Port)" - cont_encr="$(uci -q get obuspa.$dhcp_controller.EnableEncryption)" + elif [ "${cont_proto}" = "WebSocket" ]; then + cont_port=$(uci -q get obuspa."${dhcp_controller}".Port) + cont_encr=$(uci -q get obuspa."${dhcp_controller}".EnableEncryption) mtps=$(uci -q show obuspa | grep "=mtp" | cut -d'=' -f1 | cut -d'.' -f2) for mtp in $mtps; do - mtp_port="$(uci -q get obuspa.$mtp.Port)" - mtp_encr="$(uci -q get obuspa.$mtp.EnableEncryption)" - if [ "${mtp_port}" == "${cont_port}" ] && [ "${mtp_encr}" == "${cont_encr}" ]; then + mtp_port=$(uci -q get obuspa."${mtp}".Port) + mtp_encr=$(uci -q get obuspa."${mtp}".EnableEncryption) + if [ "${mtp_port}" = "${cont_port}" ] && [ "${mtp_encr}" = "${cont_encr}" ]; then dhcp_mtp="${mtp}" break fi @@ -306,43 +305,43 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then if [ -n "${dhcp_controller}" ]; then ## Handling of controller section - ct_endpoint=$(uci -q get obuspa.$dhcp_controller.EndpointID) - ct_proto=$(uci -q get obuspa.$dhcp_controller.Protocol) - ct_prov=$(uci -q get obuspa.$dhcp_controller.ProvisioningCode) + ct_endpoint=$(uci -q get obuspa."${dhcp_controller}".EndpointID) + ct_proto=$(uci -q get obuspa."${dhcp_controller}".Protocol) + ct_prov=$(uci -q get obuspa."${dhcp_controller}".ProvisioningCode) if [ "${ct_proto}" = "MQTT" ]; then - ct_topic=$(uci -q get obuspa.$dhcp_controller.Topic) + ct_topic=$(uci -q get obuspa."${dhcp_controller}".Topic) else - ct_topic=$(uci -q get obuspa.$dhcp_controller.Path) + ct_topic=$(uci -q get obuspa."${dhcp_controller}".Path) fi if [ -n "${ENDPOINT_ID}" ] && [ "${ct_endpoint}" != "${ENDPOINT_ID}" ]; then - uci -q set obuspa.$dhcp_controller.EndpointID="${ENDPOINT_ID}" + uci -q set obuspa."${dhcp_controller}".EndpointID="${ENDPOINT_ID}" uci_change=1 fi if [ -n "${offered_proto}" ] && [ "${ct_proto}" != "${offered_proto}" ]; then - uci -q set obuspa.$dhcp_controller.Protocol="${offered_proto}" + uci -q set obuspa."${dhcp_controller}".Protocol="${offered_proto}" if [ "${offered_proto}" != "MQTT" ]; then - uci -q set obuspa.$dhcp_controller.mqtt="" - uci -q set obuspa.$dhcp_controller.Topic="" - uci -q set obuspa.$dhcp_controller.Host="${ip}" - uci -q set obuspa.$dhcp_controller.Port="${port}" - uci -q set obuspa.$dhcp_controller.Path="${ct_topic}" - uci -q set obuspa.$dhcp_controller.EnableEncryption="${mtp_encrypt}" + uci -q delete obuspa."${dhcp_controller}".mqtt + uci -q delete obuspa."${dhcp_controller}".Topic + uci -q set obuspa."${dhcp_controller}".Host="${ip}" + uci -q set obuspa."${dhcp_controller}".Port="${port}" + uci -q set obuspa."${dhcp_controller}".Path="${ct_topic}" + uci -q set obuspa."${dhcp_controller}".EnableEncryption="${mtp_encrypt}" else - uci -q set obuspa.$dhcp_controller.EnableEncryption="" - uci -q set obuspa.$dhcp_controller.Path="" - uci -q set obuspa.$dhcp_controller.Host="" - uci -q set obuspa.$dhcp_controller.Port="" + uci -q delete obuspa."${dhcp_controller}".EnableEncryption + uci -q delete obuspa."${dhcp_controller}".Path + uci -q delete obuspa."${dhcp_controller}".Host + uci -q delete obuspa."${dhcp_controller}".Port if [ -z "${dhcp_mqtt}" ]; then - uci -q set obuspa.$dhcp_controller.mqtt='dhcpmqtt' + uci -q set obuspa."${dhcp_controller}".mqtt='dhcpmqtt' else - uci -q set obuspa.$dhcp_controller.mqtt="${dhcp_mqtt}" + uci -q set obuspa."${dhcp_controller}".mqtt="${dhcp_mqtt}" fi - uci -q set obuspa.$dhcp_controller.Topic="${ct_topic}" + uci -q set obuspa."${dhcp_controller}".Topic="${ct_topic}" fi proto_changed=1 @@ -355,38 +354,38 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then protocol="${offered_proto}" fi - if [ "${protocol}" == "MQTT" ]; then - uci -q set obuspa.$dhcp_controller.Topic="${topic}" + if [ "${protocol}" = "MQTT" ]; then + uci -q set obuspa."${dhcp_controller}".Topic="${topic}" else - uci -q set obuspa.$dhcp_controller.Path="${topic}" + uci -q set obuspa."${dhcp_controller}".Path="${topic}" fi uci_change=1 fi if [ -n "${PROV_CODE}" ] && [ "${ct_prov}" != "${PROV_CODE}" ]; then - uci -q set obuspa.$dhcp_controller.ProvisioningCode="${PROV_CODE}" + uci -q set obuspa."${dhcp_controller}".ProvisioningCode="${PROV_CODE}" uci_change=1 fi if [ "${proto_changed}" -eq 1 ]; then - if [ "${offered_proto}" == "WebSocket" ]; then + if [ "${offered_proto}" = "WebSocket" ]; then if [ -n "${dhcp_mqtt}" ]; then - uci -q del obuspa.$dhcp_mqtt + uci -q delete obuspa."${dhcp_mqtt}" fi if [ -z "${dhcp_mtp}" ]; then sec=$(uci -q add obuspa mtp) uci -q rename obuspa."${sec}"='dhcpmtp' dhcp_mtp="dhcpmtp" - uci -q set obuspa.$dhcp_mtp.Enable='1' + uci -q set obuspa."${dhcp_mtp}".Enable='1' fi - uci -q set obuspa.$dhcp_mtp.mqtt='' - uci -q set obuspa.$dhcp_mtp.ResponseTopicConfigured='' - uci -q set obuspa.$dhcp_mtp.Protocol='WebSocket' - uci -q set obuspa.$dhcp_mtp.Port="${port}" - uci -q set obuspa.$dhcp_mtp.EnableEncryption="${mtp_encrypt}" + uci -q set obuspa."${dhcp_mtp}".mqtt='' + uci -q set obuspa."${dhcp_mtp}".ResponseTopicConfigured='' + uci -q set obuspa."${dhcp_mtp}".Protocol='WebSocket' + uci -q set obuspa."${dhcp_mtp}".Port="${port}" + uci -q set obuspa."${dhcp_mtp}".EnableEncryption="${mtp_encrypt}" uci_change=1 else @@ -397,78 +396,78 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then 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}" + 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}" - uci -q set obuspa.$dhcp_mqtt.BrokerPort="${port}" - uci -q set obuspa.$dhcp_mqtt.TransportProtocol="${mtp_encrypt}" - uci -q set obuspa.$dhcp_mqtt.ProtocolVersion='5.0' + uci -q set obuspa."${dhcp_mqtt}".BrokerAddress="${ip}" + uci -q set obuspa."${dhcp_mqtt}".BrokerPort="${port}" + uci -q set obuspa."${dhcp_mqtt}".TransportProtocol="${mtp_encrypt}" + uci -q set obuspa."${dhcp_mqtt}".ProtocolVersion='5.0' if [ -z "${dhcp_mtp}" ]; then sec=$(uci -q add obuspa mtp) uci -q rename obuspa."${sec}"='dhcpmtp' dhcp_mtp="dhcpmtp" - uci -q set obuspa.$dhcp_mtp.Enable='1' + uci -q set obuspa."${dhcp_mtp}".Enable='1' fi agent_topic=$(get_agent_topic) - uci -q set obuspa.$dhcp_mtp.Port="" - uci -q set obuspa.$dhcp_mtp.EnableEncryption="" - uci -q set obuspa.$dhcp_mtp.Protocol='MQTT' - uci -q set obuspa.$dhcp_mtp.ResponseTopicConfigured="${agent_topic}" - uci -q set obuspa.$dhcp_mtp.mqtt="${dhcp_mqtt}" + uci -q delete obuspa."${dhcp_mtp}".Port + uci -q delete obuspa."${dhcp_mtp}".EnableEncryption + uci -q set obuspa."${dhcp_mtp}".Protocol='MQTT' + uci -q set obuspa."${dhcp_mtp}".ResponseTopicConfigured="${agent_topic}" + uci -q set obuspa."${dhcp_mtp}".mqtt="${dhcp_mqtt}" uci_change=1 fi else - if [ "${ct_proto}" == "WebSocket" ]; then - conf_ip="$(uci -q get obuspa.$dhcp_controller.Host)" - conf_port="$(uci -q get obuspa.$dhcp_mtp.Port)" - conf_encr="$(uci -q get obuspa.$dhcp_mtp.EnableEncryption)" + if [ "${ct_proto}" = "WebSocket" ]; then + conf_ip="$(uci -q get obuspa."${dhcp_controller}".Host)" + conf_port="$(uci -q get obuspa."${dhcp_mtp}".Port)" + conf_encr="$(uci -q get obuspa."${dhcp_mtp}".EnableEncryption)" if [ -n "${ip}" ] && [ "${conf_ip}" != "${ip}" ]; then - uci -q set obuspa.$dhcp_controller.Host="${ip}" + uci -q set obuspa."${dhcp_controller}".Host="${ip}" uci_change=1 fi if [ -n "${port}" ] && [ "${conf_port}" != "${port}" ]; then - uci -q set obuspa.$dhcp_mtp.Port="${port}" - uci -q set obuspa.$dhcp_controller.Port="${port}" + uci -q set obuspa."${dhcp_mtp}".Port="${port}" + uci -q set obuspa."${dhcp_controller}".Port="${port}" uci_change=1 fi if [ -n "${mtp_encrypt}" ] && [ "${conf_encr}" != "${mtp_encrypt}" ]; then - uci -q set obuspa.$dhcp_mtp.EnableEncryption="${mtp_encrypt}" - uci -q set obuspa.$dhcp_controller.EnableEncryption="${mtp_encrypt}" + uci -q set obuspa."${dhcp_mtp}".EnableEncryption="${mtp_encrypt}" + uci -q set obuspa."${dhcp_controller}".EnableEncryption="${mtp_encrypt}" uci_change=1 fi else - conf_ip="$(uci -q get obuspa.$dhcp_mqtt.BrokerAddress)" - conf_port="$(uci -q get obuspa.$dhcp_mqtt.BrokerPort)" - conf_encr="$(uci -q get obuspa.$dhcp_mqtt.TransportProtocol)" + conf_ip=$(uci -q get obuspa."${dhcp_mqtt}".BrokerAddress) + conf_port=$(uci -q get obuspa."${dhcp_mqtt}".BrokerPort) + conf_encr=$(uci -q get obuspa."${dhcp_mqtt}".TransportProtocol) if [ -n "${port}" ] && [ "${conf_port}" != "${port}" ]; then - uci -q set obuspa.$dhcp_mqtt.BrokerPort="${port}" + uci -q set obuspa."${dhcp_mqtt}".BrokerPort="${port}" uci_change=1 fi if [ -n "${mtp_encrypt}" ] && [ "${conf_encr}" != "${mtp_encrypt}" ]; then - uci -q set obuspa.$dhcp_mqtt.TransportProtocol="${mtp_encrypt}" + uci -q set obuspa."${dhcp_mqtt}".TransportProtocol="${mtp_encrypt}" uci_change=1 fi if [ -n "${ip}" ] && [ "${conf_ip}" != "${ip}" ]; then - uci -q set obuspa.$dhcp_mqtt.BrokerAddress="${ip}" + uci -q set obuspa."${dhcp_mqtt}".BrokerAddress="${ip}" uci_change=1 fi fi fi else - uci -q del obuspa.dhcpmtp - uci -q del obuspa.dhcpmqtt + uci -q delete obuspa.dhcpmtp + uci -q delete obuspa.dhcpmqtt sec=$(uci -q add obuspa controller) uci -q rename obuspa."${sec}"='dhcpcontroller' @@ -480,7 +479,7 @@ if [ "${wan_intf}" == "${INTERFACE}" ]; then uci -q set obuspa.dhcpcontroller.Enable='1' if [ -n "${offered_proto}" ]; then - if [ "${offered_proto}" == "MQTT" ]; then + if [ "${offered_proto}" = "MQTT" ]; then user="$(uci -q get obuspa.global.username)" pass="$(uci -q get obuspa.global.password)"